这是我的问题。我在lua上有一个通过套接字发送数据的服务器。数据不断传输-这是交换交易的流。我作为客户端的python脚本应该接收数据。
def listen():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
sock.connect(("localhost", 1111))
with BytesIO() as response_bytes:
while True:
try:
fragment = sock.recv(8196)
print("Фрагмент: {}".format(fragment))
except Exception:
pass
if __name__ == "__main__":
t2 = threading.Thread(listen())
t2.start()
while True:
print ("test")
主线程等待sock.recv(8196)行。我希望并行接收来自套接字的数据,并且主流继续工作。当前代码会阻塞main的性能,直到执行侦听为止。我不熟悉Python中的多个任务。可以做出什么决定?
答案 0 :(得分:1)
您必须将listen
函数传递给threading.Thread()
。您正在主线程中调用该函数,等待它完成,然后传递其返回值(这是None
,因为该函数从不返回任何内容)。
t2 = threading.Thread(target = listen)