2011-10-27 64 views
0

在Microsoft多宿主PC上綁定到INADDR_ANY的套接字上使用recvfrom()。 當recvfrom()獲取UDP數據包時:如何找到接收數據包的接口(IP)?獲取接收到recvfrom()UDP數據包(Microsoft)的接口的IP

+0

Microsoft PC?這是一個相當廣泛的可能性,我假設Windows - 但仍然是什麼版本?贏3.11和贏7是*稍有不同。另外,你有什麼嘗試?你期望什麼結果?你取得了什麼? – Piskvor

+0

- 用於某些原因,我不能編輯從WIN2000原post-- 使用recvfrom的()(我不能使用WSARecvMsg())到Win7的 到目前爲止,我無法找到任何要做到這一點 – user664239

回答

0

當單個監聽套接字綁定到多個IP時,無法知道接收IP。您可以使用GetAdaptersInfo()和/或GetAdapterAddresses()查詢機器的本地IP列表,而不是將單個套接字綁定到INADDR_ANY,然後爲每個IP創建一個單獨的偵聽套接字。您可以使用getsockname()來了解給定套接字綁定到哪個IP,但只有當套接字綁定到特定IP而不是多個IP時。

+0

難以置信, 的那些設計這個廢話是「高於」比平常那天... 在我的情況「多個套接字」不是一個選項... – user664239