我使用Bottle
服务器来实现我自己的服务器,使用的实现与简单的“hello world”here不太远,我自己的实现是(当然没有路由部分):bottleApp =bottle.app()
bottleApp.run(host='0.0.0.0',port=80, debug=true)
我的服务器一直没有响应,然后我进入浏览器:Connection reset by peer
,broken pipe errno 32
日志给我的堆栈跟踪几乎完全相同,比如在question。在
到目前为止,我所做的一切都没有成功:
用try包装服务器运行行,但显示了here的答案“mhawke”。
这就停止了日志中的错误消息,显然是因为我在except
子句中捕捉到了它们,但问题是,当捕捉到这样的异常时,意味着我们已经被抛出了run
方法上下文,我想以一种不会导致服务器崩溃的方式捕捉它。
我不知道不接触bottle
的内部实现文件是否可能。
在服务器运行行之前添加:from signal import signal, SIGPIPE, SIG_DFL
signal(SIGPIPE,SIG_DFL)
正如建议的here,但它似乎对不出现断管\连接重置错误和服务器响应性没有任何影响。
我还想尝试第二个答案here,但是我不知道在bottle
服务器的上下文中该在哪里找到这段代码。
这听起来像是权限问题或防火墙。在
如果您真的需要监听端口80,那么您需要使用特权帐户运行。此外,您可能需要为tcp通信打开端口80。在
我可以看到你使用的是Posix(Linux/Unix/OSx)的东西,如果你发布你正在使用的操作系统,我可以编辑这个答案来更具体地说明如何打开防火墙和执行特权命令(可能是
sudo
,但谁知道呢)。在相关问题 更多 >
编程相关推荐