由对等体104重置管道错误和连接重置

时间:2015-10-10 11:15:39

标签: python bottle broken-pipe sigpipe

我正在使用Bottle服务器来实现我自己的服务器,使用的实现距离简单的“hello world”here不远,我自己的实现是(当然没有路由部分) :
bottleApp =bottle.app() bottleApp.run(host='0.0.0.0',port=80, debug=true)

我的服务器一直没有响应,然后我进入浏览器:Connection reset by peerbroken pipe errno 32
日志给出了几乎完全相同的堆栈跟踪,例如question

这是我自己的日志:
Broken pipe stack trace
connection reset by peer stack trace

到目前为止我尝试了什么,没有成功:

  1. 使用try包装服务器运行行,但显示here“mhawke”的答案。 这停止了​​日志中的错误消息,显然是因为我在except子句中捕获了它们,但问题是当捕获异常时,这意味着我们已经被抛出run方法上下文,并且我希望以一种不会导致服务器掉落的方式捕捉它 我不知道它是否可能没有触及bottle的内部实现文件。

  2. 在服务器运行行之前添加:
    from signal import signal, SIGPIPE, SIG_DFL signal(SIGPIPE,SIG_DFL)
    正如建议here,但它似乎没有对没有破坏管道\连接重置错误和服务器响应性产生任何影响。

  3. 我还想尝试第二个答案here,但我不知道在bottle服务器的上下文中找到这个代码的位置。

    < / LI>

1 个答案:

答案 0 :(得分:0)

这听起来像是权限问题或防火墙。

如果您确实需要侦听端口80,那么您需要使用特权帐户运行。此外,您可能需要为tcp流量打开端口80。

我可以看到你使用的东西似乎是Posix(Linux / Unix / OSx)如果你发布了你正在使用的操作系统,我可以编辑这个答案,以便更具体地说明如何打开防火墙并执行特权命令(可能是sudo,但谁知道呢。