问题描述
我已经用Python用socketserver编写了一个基本的客户端和服务器,每2秒就可以互相来回通信。最近,我家里的wi-fi连接非常不稳定,有一次我的服务器吐出了以下错误:
TimeoutError : [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time,or established connection failed because connected host has failed to respond.
追溯源于这一行:
self.data = self.request.recv(1024)
服务器代码如下:
class MyTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
global machines
global server_shutdown
self.data = self.request.recv(1024)
dostuff()
server = socketserver.TCPServer((HOST,PORT),MyTCPHandler)
server.serve_forever()
我不知道这怎么可能发生。这是否意味着在handle()函数开始处理请求与运行self.data = self.request.recv(1024)
行之间的短暂时间内,网络恰好处于中断状态?如果recv
函数基本上是在handle()
函数中运行的第一件事,怎么会出现超时错误?首先必须有一个连接才能运行handle()
,对吗?我只是不明白。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)