Python 使用socketserver的聊天程序,如何创建客户端;“永远倾听”吗;?

Python 使用socketserver的聊天程序,如何创建客户端;“永远倾听”吗;?,python,tcp,socketserver,Python,Tcp,Socketserver,在使用socketserver和TCP之前,我的聊天客户端会如下所示: def recvData(self): try: while True: data = self.sock.recv(1024) if data: data_handler(data) except: pass while running: dt = clock.tick(60)

在使用socketserver和TCP之前,我的聊天客户端会如下所示:

def recvData(self):
    try:
        while True:
            data = self.sock.recv(1024)
            if data:
                data_handler(data)
    except:
        pass

while running:
    dt = clock.tick(60)
    client.recvData()
当客户端的服务器使用TCP socketserver时,如何为客户端模拟此行为

编辑以下是我(糟糕)的尝试:

我得到:

BlockingIOError: [WinError 10035] A non-blocking socket operation could not be completed immediately

你真的想要一个非阻塞的插座吗?我相信是的,因为我可能在做其他事情的同时收到了一些东西。。。或者我误解了套接字阻塞?不,听起来您的理解是对的,只是您试图进行阻塞调用(
recvsock.recv
)而没有处理抛出的异常。您可以考虑使用
select
asyncio
模块来实现所需功能。@HumphreyTriscuit我现在有一个“except:pass”,因为我显然不能保证每次尝试都能获得一段数据。。。但是我仍然得到相同的错误…请参阅使用try/except的实现,尽管我认为这种方法有点幼稚<代码>选择/
异步
在这里更有用
BlockingIOError: [WinError 10035] A non-blocking socket operation could not be completed immediately