इंटरफ़ेस का आईपी प्राप्त करना जो रिकॉर्फ़ॉम () यूडीपी पैकेट (माइक्रोसॉफ्ट) प्राप्त करता है

माइक्रोसॉफ्ट बहुआयामी पीसी पर INADDR_ANY से जुड़ी एक सॉकेट पर recvfrom() का उपयोग करना। जब recvfrom() एक यूडीपी पैकेट मिलता है: मैं इंटरफ़ेस (आईपी) कैसे प्राप्त कर सकता है जो पैकेट प्राप्त किया?

0
माइक्रोसॉफ्ट पीसी? यह संभावनाओं की एक विस्तृत श्रृंखला है, मैं विंडोज मान रहा हूं - लेकिन फिर भी, क्या संस्करण? विन 3.11 और विन 7 थोड़ा अलग हैं। इसके अलावा, आपने क्या प्रयास किया है? आप किस नतीजे की उम्मीद करते थे? इसके बजाय आपको क्या मिला?
जोड़ा लेखक Piskvor, स्रोत
- किसी कारण से मैं मूल पोस्ट को संपादित नहीं कर सकता - win2000 से recvfrom() का उपयोग कर (मैं W7ARecvMsg() का उपयोग Win7 तक नहीं कर सकता, अब तक मुझे ऐसा करने के लिए कुछ भी नहीं मिला
जोड़ा लेखक user664239, स्रोत

1 उत्तर

प्राप्तकर्ता आईपी को जानने का कोई तरीका नहीं है जब एक ही सुनवाई सॉकेट एकाधिक आईपी से बंधे होते हैं। INADDR_ANY पर एक सॉकेट बाध्य करने के बजाय, आप GetAdaptersInfo() और/या GetAdapterAddresses() का उपयोग करके स्थानीय आईपी की मशीन की सूची से पूछ सकते हैं, फिर प्रत्येक आईपी के लिए एक अलग सुनवाई सॉकेट बनाएँ। आप यह जानने के लिए getockname() का उपयोग कर सकते हैं कि कौन सी आईपी दी गई सॉकेट बाध्य है, लेकिन केवल जब वह सॉकेट एक विशिष्ट आईपी से जुड़ी होती है, तो एकाधिक आईपी नहीं।

0
जोड़ा