通过套接字发送数据而不依赖于接收数据

时间:2015-11-13 22:05:03

标签: python sockets

def run(self):
    while True:
        if not self.MessagesQueue.empty():
            self.sendMessage()                         
        response=self.s.recv(1024).decode("utf-8")
            self.processResponse(response)
        time.sleep(1)
def addMessageToQueue(self,message): #called from main thread
    self.MessagesQueue.put(message)

这段代码在一个线程上运行,代码的问题是recv阻塞线程所以我只能在收到1024字节的数据时发送sendMessage(),我想在我想要的时候发送数据,即使在迭代中也是如此完全没有收到1024个字节。

我该怎么做? 感谢。

1 个答案:

答案 0 :(得分:0)

如果应用程序不要求您同步它们,请在不同的线程中进行发送和接收。线程的每个方向都是独立的,在recv()中阻塞另一个线程时,在一个线程中发送没有问题。