Python HTTPServer [WinError 10053] 请求过多时?

Python HTTPServer [WinError 10053] When there are too many requests?

运行 一个超级简单的网络服务器,在大多数情况下,只需要从第 3 方脚本和 return 一些文件的请求中删除查询信息:

def run(server_class=HTTPServer, handler_class=MyHandler, port=xxx):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print ('Starting httpd...')
httpd.serve_forever()

服务器必须 return 的一个对象是一个 HTML 页面,然后加载一些 javascript,然后加载 three.js,然后继续加载一吨来自同一服务器的对象。

这有效,但在重新加载 1-5 次后,通常会导致 WinError[10053] 和服务器锁定!之后,连接将被拒绝或超时。不确定这是由于请求太多,还是与 Three.js 的加载函数的连接有关。

这花了几个小时,我找不到具体的解决方案,所以我会 post 在下面给出一个答案。随意补充其他答案

到 multi-threading server/handler,我已经能够处理至少一个用户。它可能仍然是一个吞吐量问题,但现在已经足够了:

class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
    pass

def run(server_class=ThreadingHTTPServer, handler_class=MyHandler, port=xxx):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print ('Starting httpd...')
    httpd.serve_forever()

我的一些其他事情 tried/failed:

  • 编辑 self.path 并调用 SimpleHTTPRequestHandler.do_GET(self) //无法更改路径以影响简单处理程序
  • allow_reuse_address = True/False // 无效
  • 手动设置close_connection = True //无效
  • 一些header播放//无效果

希望这能救人!