在Microsoft多主PC上绑定INADDR_ANY的套接字上使用recvfrom()。当recvfrom()获得UDP数据包时:我如何找到接收数据包的接口(IP) ?
当一个监听套接字绑定到多个IP时,没有办法知道接收IP。您可以使用GetAdaptersInfo()
和/或GetAdapterAddresses()
查询机器的本地IP列表,而不是将单个套接字绑定到INADDR_ANY
,然后为每个IP创建单独的侦听套接字。您可以使用getsockname()
来知道给定套接字绑定到哪个IP,但仅当该套接字绑定到特定IP时,而不是多个IP。