【问题标题】:how to call setsockopt before reactor.connectTCP如何在 reactor.connectTCP 之前调用 setsockopt
【发布时间】:2014-06-18 08:31:38
【问题描述】:

我想编写 TCP 客户端协议,但我想在运行 ConnectTCP 之前调用 setsockopt,我该怎么做。

reactor.connectTCP(
 host=HOST,
 port=PORT,
 factory=TEST,
 timeout=30,
 bindAddress=(my_addr, 0))

我只知道我可以在Protcol 中使用setsockopt 喜欢

self.transport.getHandle().setsockopt()

This post 有一些答案,但它是针对服务器端的,我想要的是客户端代码

【问题讨论】:

    标签: python sockets twisted


    【解决方案1】:

    类似于链接问题中讨论的adoptStreamPort,有adoptStreamConnection

    【讨论】:

    • 你能给我一个例子吗?我想在连接开始时设置sockopt,而不是已经连接了连接。
    • 该示例与另一个问题中的示例几乎相同 - 除了您要设置的特定套接字选项,您的问题中没有包含该选项。
    【解决方案2】:
    connector = reactor.connectTCP(
                host=IP,
                port=PORT,
                factory=DemoFactory,
                timeout=30,
                bindAddress=(LOCAL_IP, 0))
    
    connector.transport.getHandle().setsockopt(socket.IPPROTO_TCP, TCP_MD5SIG, md5sig)
    reactor.run()
    

    通过扭曲的源代码,我得到了这个解决方案,它有效!!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-26
      • 2021-09-21
      • 1970-01-01
      相关资源
      最近更新 更多