建立套接字连接时从终端获取输入



我遇到了一个问题,我想从终端获取输入,但无法获取。 我能想到的原因是因为这端已经打开了一个插座。我解释了结构的概述如下:

我有一个打开套接字的程序。然后我打开另一个进程,在该进程中,我有input语句,我想从中获取输入,但它不起作用。print语句在任何地方都工作正常,除了输入语句之后。

mainFile.py:

if __name__ == "__main__":
pose_face = face.Pose_Face()
async_lesson = Process(target=lesson.start_lesson, args=(lesson_args,return_dict))

face.py:

class Pose_Face:
def __init__(self):
context = zmq.Context()
print("Connecting openface server..")
self.socket = context.socket(zmq.REQ)
self.socket.connect("tcp://127.0.0.1:5562")

lesson.py:

class lesson:
def start_lesson(d,return_dict):
txt_resp = input("Enter Text ") //TAKING INPUT
print("text input : " + txt_resp) //THIS IS NOT GETTING PRINTED

我刚刚给出了代码的简短版本,因为我想这个问题不依赖于代码,而是主要依赖于概念。我试图寻找方法来做到这一点,但无法做到。在终端中,语句Enter Text出现,当我输入文本并按Enter没有任何反应,甚至下一个打印行都没有打印。

编辑 :使用Ubuntu终端,如果此信息有任何帮助。此外,在我的 mainFile.py 中执行这两个语句后,我还绘制了一个始终留在那里(需要(的 matplot 图。

套接字不是这里的问题。但是,如果您不设置一些同步,则在多处理中从终端读取是危险的。当多个线程或进程在同一流上写入时,更糟糕的行为是所有输出的奇怪混合。但是,当多个进程线程竞争读取同一输入流时,一个(随机(将获得一些输入,而其他人甚至看不到它。

规则是每个输入流一个读取器

最新更新