关于Python TCP socket.recv()
是阻塞调用,我有一个非常小的问题。我正在制作一个IRC虽然是Python(作业),但我已接近尾声,但遇到了一个小小的颠簸。我正在尝试让服务器推送包含{"ChannelName": [users]}
的dict的更新,并且我使用JSON进行序列化/反序列化(所以我的问题不是实际的消息)。我发送/接收一切都很好。我最大的问题是socket.recv()
没有被阻止。
我所做的是类似的事(请原谅我的伪代码):
async def getchannelsandusers(self):
# Code to get serialized json
def sendchannelsandusers(self):
# for each user send the code from self.getchannelsandusers
def threadtoupdate(self):
t = threading.Timer(5, self.sendchannelsandusers)
t.start()
def funcwhereblockis(self):
self.threadtoupdate()
usermessage = socket.recv(size).decode('utf8') # <- gets stuck here only updates once
我的最终目标是通过位于服务器端的socket.send()
继续使用频道中的频道和用户更新客户端GUI。
非常感谢任何指导。