我正在尝试移动一些代码以使用 asyncio (出于各种原因)。在我现有的代码中,我创建了一个套接字,将其bind()连接到特定接口,以确保在该接口上建立 TCP 连接:_TCP_Socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)_TCP_Socket.bind(('169.254.6.1', 13000)) # All data sent from this IP, Port (i.e using the interface that has this IP)_TCP_Socket.connect(('169.254.10.123, 13000))上面的方法有效,但是我如何在 asyncio 中实现相同的效果?即如何选择发送接口?没有asyncio.open_connection()这样bind()的。那么,我要给它传递一个套接字吗?即像以前一样创建一个套接字,该套接字绑定到我想要发送的接口,然后调用open_connection?reader, writer = await asyncio.open_connection('169.254.10.123', 13000, sock=_TCP_Socket) # Use _TCP_Socket created earlier?
1 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
文档说有asyncio.open_connection
命名参数,其描述可以在create_connectionlocal_addr
描述中找到:
如果给定,则是
(local_host, local_port)
用于将套接字绑定到本地的元组。
因为open_connection
是一个包装器create_connection
并且文档包含以下句子:
其余参数直接传递给loop.create_connection()。
添加回答
举报
0/150
提交
取消