asyncio - 使用特定接口打开连接

我正在尝试移动一些代码以使用 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?


蛊毒传说
浏览 128回答 1
1回答

蝴蝶刀刀

文档说有asyncio.open_connection命名参数,其描述可以在create_connectionlocal_addr描述中找到:如果给定,则是(local_host, local_port)用于将套接字绑定到本地的元组。因为open_connection是一个包装器create_connection并且文档包含以下句子:其余参数直接传递给loop.create_connection()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python