1
为了在python中实现一个简单的协议,我使用了一个线程来监视接收器发送的确认。要做到这一点,我使用一个线程函数在Python中的线程中终止sockert.recv
def ackListener(self):
while self.waitingforack:
ack = self.socket_agent.recv(4)
...
exit()
其中self.waitingforack
是布尔我设置为False
,当我收到的确认,我发送的每个消息。
的问题是,我的代码是阻止在self.socket_agent.recv(4)
运行,waitingforack
值的修改完成太晚
有没有办法迫使线程时,我没有在等待ACK终止了吗?
谢谢
谢谢你似乎setblocking和setTimeout的可以帮助我。问题是,我只想在我发送每条消息的时候修改阻塞或超时值(这是我在recv操作中已经被阻塞的时候)... – 2010-10-21 23:42:58
@Martin Trigaux:如上所述,如果你已经叫recv,你会被阻止。您应该设置为非阻塞或减少锁定超时并围绕它设计解决方案。 – pyfunc 2010-10-22 00:02:40