Python 通过套接字发送数据而不依赖于接收数据
这段代码是在线程上运行的,代码的问题是recv阻塞了线程,因此我只能在收到1024字节的数据时发送消息(),我想在任何时候发送数据,即使在1024字节未完全接收的迭代中也是如此 我该怎么做?Python 通过套接字发送数据而不依赖于接收数据,python,sockets,Python,Sockets,这段代码是在线程上运行的,代码的问题是recv阻塞了线程,因此我只能在收到1024字节的数据时发送消息(),我想在任何时候发送数据,即使在1024字节未完全接收的迭代中也是如此 我该怎么做? 谢谢。如果应用程序不需要同步,请在不同的线程中执行发送和接收。一个线程的每个方向都是独立的,当另一个线程在recv()中被阻止时,在一个线程中发送是没有问题的。如果不需要依赖项,为什么要在同一个线程中发送和接收?在recv中被阻止时,我可以使用套接字发送吗?是的,可以。这两个方向是独立的通道。如果是这样,我
谢谢。如果应用程序不需要同步,请在不同的线程中执行发送和接收。一个线程的每个方向都是独立的,当另一个线程在
recv()中被阻止时,在一个线程中发送是没有问题的。如果不需要依赖项,为什么要在同一个线程中发送和接收?在recv中被阻止时,我可以使用套接字发送吗?是的,可以。这两个方向是独立的通道。如果是这样,我就不需要同步套接字。如果我有两个线程,一个发送,一个接收,是否正确?是否需要同步取决于应用程序。如果应用程序不需要同步,可以在不同的线程中进行同步。
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)