Obținerea IP a interfeței care a primit un pachet UDP (recvfrom) ()

Folosind recvfrom() pe un soclu legat la INADDR_ANY pe un PC Microsoft multihomed. când recvfrom() primește un pachet UDP: cum pot găsi Interfața (IP) care a primit pachetul?

0
Microsoft PC? Aceasta este o gamă destul de largă de posibilități, presupun Windows - dar încă, ce versiune? Win 3.11 și Win 7 sunt ușor diferite. De asemenea, ce ai încercat? Ce rezultate ați așteptat? Ce ați primit în schimb?
adăugat autor Piskvor, sursa
- din anumite motive nu pot edita postul original - folosind recvfrom() din win2000 (nu pot folosi WSARecvMsg ()) la Win7 până acum nu am putut găsi nimic pentru a face acest lucru
adăugat autor user664239, sursa

1 răspunsuri

Nu există nicio modalitate de a cunoaște adresa IP recepționată atunci când un singur soclu de ascultare este legat de mai multe adrese IP. În loc să legați un singur socket la INADDR_ANY , puteți interoga lista IP-urilor locale folosind GetAdaptersInfo() și GetAdapterAddresses() getockname() pentru a ști care este IP-ul unui soclu dat, dar numai atunci când socket-ul este legat la o anumită IP, nu la mai multe IP-uri.

0
adăugat