首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python HTTPServer [WinError 10053]当请求太多时?

Python HTTPServer [WinError 10053]当请求太多时?
EN

Stack Overflow用户
提问于 2018-07-10 16:49:02
回答 1查看 180关注 0票数 1

运行一个超级简单的and服务器,在大多数情况下,只需要从第三方脚本的请求中剥离查询信息并返回一些文件:

代码语言:javascript
复制
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()

服务器必须返回的一个对象是一个超文本标记语言页面,它加载一些javascript,然后加载three.js,然后从同一服务器加载大量对象。

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

这花了几个小时,我找不到一个具体的解决方案,所以我会在下面发布一个答案。请随时加入其他答案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 16:49:02

通过对服务器/处理程序进行多线程处理,我至少能够处理一个用户。这可能仍然是一个吞吐量问题,但现在已经足够了:

代码语言:javascript
复制
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()

我尝试过/失败过的其他一些事情:

  • 编辑self.path并调用SimpleHTTPRequestHandler.do_GET(self) //无法更改路径以影响简单handler
  • allow_reuse_address = True/False //No effect
  • manually setting close_connection = True //No effect
  • some header play // No effect

希望这能救人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51260910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档