【问题标题】:Errno 32 Broken pipe, Errno 107 Transport endpoint is not connected python socketErrno 32 Broken pipe, Errno 107 Transport endpoint is not connected python socket
【发布时间】:2012-09-13 13:56:40
【问题描述】:

我的 TCP 服务器是用 Qt 4.7 编写的,可以很好地与同样用 Qt 4.7 编写的 TCP 客户端配合使用。

我正在尝试使用用 python 2.7.3 编写的客户端与服务器连接和通信。我通过带有subprocess.call(path_to_server) 的apache http 请求启动服务器进程。我正在使用 mod_wsgi 3.3 和 django 1.4。

连接建立没有问题。我在socket.send() 上随机收到[Errno 32] Broken pipe 异常(我可以发送相同的消息10 次,它会被发送0-10 次)。 socket.shutdown() & socket.close() 也有同样的情况,我可以发送垃圾邮件断开命令,它会随机断开连接,否则会收到 [Errno 107] Transport endpoint is not connected 异常。

netstat -nap 表示连接已建立。

当我尝试使用 python2.7 shell 运行相同的客户端脚本时,一切正常。

我在这里错过了什么?

EDIT 一切都在 Windows 7 上运行,运行相同的 apache、mod_wsgi、python、django 配置。 TCP Server 也与 Windows 兼容。 centos6.2 32bit出现错误。

【问题讨论】:

  • 特别检查 apache 设置,KeepAlive 和 KeepAliveRequests。看起来很有希望,稍后会报告。

标签: python apache tcp broken-pipe sigpipe


【解决方案1】:

我必须将 apache 设置设置为: KeepAlive On MaxKeepAliveRequests 0 KeepAliveTimeout 5

我会进一步调查这个问题,看看这是否是正确的解决方案。

【讨论】:

    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2014-05-02
    相关资源
    最近更新 更多