Recvfrom () UDP paketini (Microsoft) olgan IP interfeysidan foydalanish,

Recvfrom() funktsiyasini Microsoft multihomed kompyuterida INADDR_ANY ga ulangan rozetkadan foydalanish. recvfrom() bir UDP paketini olganda: paketni olgan interfeys (IP) qanday topsam bo'ladi?

0
Microsoft PC? Bu juda keng imkoniyatlarga ega, men Windows-ni oldim deb o'ylayman - lekin yana qanday versiya? Win 3.11 va Win 7: ozgina farq qiladi. Bundan tashqari, nimani sinab ko'rdingiz? Siz qanday natijalar kutmoqdasiz? Buning o'rniga nima keldingiz?
qo'shib qo'ydi muallif Piskvor, manba
- Nega endi asl nashrni tahrir qila olmayapman - Win7000dan (men WSARecvMsg() dan foydalana olmaysan), recvfrom() dan foydalangan holda, Win7-ga bu haqda hech narsa topolmadim
qo'shib qo'ydi muallif user664239, manba

1 javoblar

Bitta tinglash uyasi bir nechta IP ga ulanganida qabul qiluvchi IP-ni bilishning hech qanday usuli yo'q. Bitta uyani INADDR_ANY ga ulash o'rniga, GetAdaptersInfo() va/yoki GetAdapterAddresses() dan foydalanib, kompyuterning mahalliy IP-larini so'rov qilishingiz mumkin, keyin har bir IP uchun alohida tinglash uyasini yarating. Qaysi IP-ning rozetkasi bog'langanligini bilish uchun getockname() -ni ishlatishingiz mumkin, lekin faqat shu soket bir nechta IP-larga emas, balki muayyan IP-ga bog'liq bo'lsa.

0
qo'shib qo'ydi