我正在嘗試移動一些代碼以使用 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
提交
取消