2014-06-18 85 views
0

我想寫TCP客戶端協議,但是我想在調用ConnectTCP之前調用setsockopt,我該怎麼做。如何在reactor.connectTCP之前調用setsockopt

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

我只知道我可以在Protcol使用setsockopt

self.transport.getHandle().setsockopt() 

This post有一些答案,但它是服務器端,我要的是客戶端代碼

回答

0
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() 

通過扭曲的源代碼,我得到了這個解決方案,它的工作原理!

0

類似adoptStreamPort爲在鏈接問題中討論,有adoptStreamConnection

+0

你能舉個例子嗎。我想在連接開始時使用setsockopt,而不是連接已經連接。 –

+0

該示例與其他問題中的示例幾乎完全相同 - 除了要設置的特定套接字選項外,您未將其包含在問題中。 –

相關問題