मुझे ऐसे ऐप की आवश्यकता है जो कुछ नेटवर्क सर्वर पर यूडीपी पैकेट भेजता है और प्रतिक्रिया प्राप्त करता है। सर्वर उसी पोर्ट नंबर पर जवाब देता है जहां से अनुरोध आया था, इसलिए मुझे पहले किसी भी यूडीपी पोर्ट नंबर पर अपनी सॉकेट को बाध्य करने की आवश्यकता है।किसी भी उपलब्ध पोर्ट से कैसे जुड़ें?
यूडीपी पोर्ट नंबर हार्डकोडिंग एक बुरा विचार है, क्योंकि इसका उपयोग उसी पीसी पर चल रहे किसी अन्य एप्लिकेशन द्वारा किया जा सकता है।
क्या किसी भी बंदरगाह पर यूडीपी सॉकेट बांधने का कोई तरीका है? आईएमओ इसे मुफ्त पोर्ट # को तुरंत प्राप्त करने का एक प्रभावी तरीका होना चाहिए, जिसका उपयोग उदाहरण के द्वारा किया जाता है। स्वीकार करें() फ़ंक्शन।
यदि नहीं, तो बाध्यकारी कोशिश करने और WSAEADDRINUSE/EADDRINUSE स्थिति की जांच करने के लिए सबसे अच्छी रणनीति क्या है: अनुक्रमिक रूप से 1025, या 1025 + रैंड(), या किसी अन्य से शुरू होने वाले बंदरगाहों को आजमाएं?
स्वीकार() कनेक्शन आधारित सॉकेट में उपयोग किया जाता है, डेटाग्राम वाले नहीं। – Beano
शायद यह मदद करेगा: http://serverfault.com/questions/447044 – yegor256
POSIX में? इसके अलावा 1024+ रेंज की आवश्यकता है: http://stackoverflow.com/questions/913501/how-to-let- कर्नेल-choose-a-port-number-in-the-range-1024-5000-in-tcp-socket- पीआर –