首页 > 解决方案 > 指定使用多个套接字时从哪个套接字 IP 地址接收

问题描述

我正在使用套接字在多个设备之间进行通信,每个设备都有自己的 IP 地址(想想一个集线器到多个设备)。我希望集线器能够使用该设备的 IP 地址从特定设备的套接字接收。

我曾考虑过使用该recvfrom()功能,但这仅在您已经从缓冲区读取后告诉您原始 IP。我希望能够事先指定这一点。

标签: pythonsockets

解决方案


使用connect(). 尽管 UDP 在技术上是无连接的,但套接字 API 允许您以这种方式创建伪连接。调用connect()UDP 套接字使其仅从指定的远程 IP 和端口接收。

这也允许您使用send()而不是sendto()与该套接字一起使用;它将自动使用连接的 IP 和端口作为目标。

请参阅连接 UDP 套接字以阅读有关此内容的更多详细信息。


推荐阅读