获取接收recvfrom()UDP数据包的接口的IP(Microsoft)

时间:2011-10-27 13:37:51

标签: winsock multihomed

在Microsoft多宿主PC上绑定到INADDR_ANY的套接字上使用recvfrom()。 当recvfrom()获取UDP数据包时:如何找到接收数据包的接口(IP)?

1 个答案:

答案 0 :(得分:1)

当单个侦听套接字绑定到多个IP时,无法知道接收IP。您可以使用INADDR_ANY和/或GetAdaptersInfo()查询计算机的本地IP列表,而不是将单个套接字绑定到GetAdapterAddresses(),然后为每个IP创建单独的侦听套接字。您可以使用getsockname()知道给定套接字绑定的IP,但仅限于该套接字绑定到特定IP而不是多个IP。