为反应堆连接前的setsockopt。ConnectTcp

2022-04-18 00:00:00 python twisted

问题描述

我有一个小的Python客户端,它在create_套接字之后、但在连接之前需要一个setsockopt。非扭曲的Python代码如下所示。如何在扭曲的环境中表达这一点?

    create_socket (socket.AF_INET, socket.SOCK_STREAM)
    socket.setsockopt(socket.IPPROTO_IP, 24,1)                        
    socket.bind((clientip, 0))                         
    connect ((serverip,serverport))

解决方案

twisted中可以使用reactor.adoptStreamPort

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.setsockopt(socket.IPPROTO_IP, 24,1) 
s.bind((serverip, serverport))    
s.listen(1)
port = reactor.adoptStreamPort(
       s.fileno(), AF_INET, YourFactory())

如果您构建的是Listen套接字还是CONNECT套接字,我并不真正理解您的代码。我假设它是一个侦听套接字。 更多详细信息可在此处找到:http://twistedmatrix.com/documents/12.2.0/api/twisted.internet.interfaces.IReactorSocket.html

相关文章