我正在编写python套接字客户端
message one (例如Hello),每15秒发送一次message two (例如15秒)我的意思是在不同的线程中进行发送和接收。然而,它仍然是封闭的。有人有建议吗?
螺纹#1
threading.Thread(target=Thread2, args=(sock)).start()
sock.recv(1024)螺纹#2
def Thread2(sock):
count = 0
while True:
sleep(5)
count = count + 5
sock.send('Hello')
if count % 15 == 0
sock.send('15 seconds')发布于 2013-03-14 16:38:06
这不是阻挡。只是主线程在第一个sock.recv(1024)之后什么都不做。你必须告诉它要不断地收集数据:
主线程
threading.Thread(target=Thread2, args=(sock,)).start()
while True:
data = sock.recv(1024)
if not data:
break
print data请注意,您将不能很容易地中断该进程。为此,需要将线程设置为守护进程:
主线程
t = threading.Thread(target=Thread2, args=(sock,))
t.daemon = True
t.start()
while True:
data = sock.recv(1024)
if not data:
break
print data同样,当您传递args时,请记住传递一个元组,即args=(sock,)而不是args=(sock)。对于Python来说,args=(sock)等同于args=sock。这可能就是罪魁祸首!
我看不出你的代码有更多的问题。
https://stackoverflow.com/questions/15404517
复制相似问题