【问题标题】:Python set tcp send timeoutPython设置tcp发送超时
【发布时间】:2013-07-26 02:32:27
【问题描述】:

我正在尝试在 Python 中设置 TCP 的 SO_SNDTIMEO。根据此处的套接字文档 (http://docs.python.org/2/library/socket.html),看来我应该使用 setsockopt。

但是,我很难理解为第三个值参数传递的内容。正如文档建议的那样,我正在尝试使用 struct 模块 (http://docs.python.org/2/library/struct.html#module-struct)。但是,我不确定我实际上应该使用什么结构来设置选项。有人有什么想法吗?

(我也尝试为第三个参数传递字符串和整数。)谢谢!

【问题讨论】:

    标签: python sockets tcp timeout


    【解决方案1】:

    底层 C 实现需要一个 timeval 结构,可以在 here 找到。它由两个长整数组成,第一个表示以秒为单位的时间,第二个表示以微秒为单位的时间。

    根据 struct.pack documentation,您可以使用格式字符串“ll”创建具有两个长字段的结构,因此以下应按预期设置 SO_SNDTIMEO:

    timeval = struct.pack('ll', some_num_secs, some_num_microsecs)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_SNDTIMEO, timeval)
    

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      • 2023-03-26
      • 2011-06-02
      • 1970-01-01
      相关资源
      最近更新 更多