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播放//无效果
希望这能救人!
运行 一个超级简单的网络服务器,在大多数情况下,只需要从第 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播放//无效果
希望这能救人!