发生Python MyTCPHandler超时错误,但不了解原因

问题描述

我已经用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)

enter image description here

服务器代码如下:

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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...