2012-03-20 13 views
14

मेरे पास एक क्लाइंट एप्लिकेशन है जो किसी उपयोगकर्ता के ब्राउज़र से जावा एप्लेट के रूप में चलता है और किसी दिए गए पोर्ट के माध्यम से सर्वर से कनेक्ट होता है। सर्वर सार्वजनिक रूप से सुलभ क्लाउड पर चल रहा है। सॉकेट कोड लिखने के अपने पिछले अनुभव के आधार पर, मैं एक यादृच्छिक पोर्ट नंबर (5 9 99 कहता हूं) पर निर्णय ले सकता हूं और क्लाइंट सर्वर संचार के लिए इसका उपयोग कर सकता हूं। हालांकि इस मामले में ग्राहक कोई उपयोगकर्ता मशीन हो सकता है और सर्वर तक पहुंचने वाले कई उपयोगकर्ता हो सकते हैं।इंटरनेट पर क्लाइंट और सर्वर संचार के बीच पोर्ट नंबर पर निर्णय कैसे लें

तो प्रश्न यह सुनिश्चित करना है कि मैं एक पोर्ट नंबर का उपयोग करता हूं जिसका उपयोग क्लाइंट के कंप्यूटर पर किसी अन्य सेवा द्वारा कम से कम होने की संभावना है।

मैंने इस उद्देश्य के लिए वेब सर्विसेज आधारित प्रोटोकॉल का भी पता लगाया है, लेकिन मैंने इसका उपयोग इस कारण से नहीं किया है कि मेरी आवश्यकता वास्तव में सरल है और इसे सरल सॉकेट संचार और कस्टम प्रोटोकॉल के साथ पूरा किया जा सकता है। मुझे वेबसाइसेस उपकरण और एसओएपी जैसी चीजें महसूस होती हैं, कोर्बा बहुत भारी वजन है।

उत्तर

8

Service Name and Transport Protocol Port Number Registry में नहीं है और सर्वोत्तम के लिए आशा करें।

इसके अलावा, एक ग्राहक एक ही बंदरगाह पर कई सर्वर से कनेक्ट कर सकता है। जब ग्राहक कनेक्ट होते हैं, तो वे अंत में एक यादृच्छिक बंदरगाह का उपयोग करेंगे।

केवल सर्वर को एक मुफ्त बंदरगाह का उपयोग करने की चिंता करने की आवश्यकता है, और ग्राहकों को यह पता होना चाहिए कि यह बंदरगाह क्या है, वे आपके सर्वर से कनेक्ट नहीं हो पाएंगे।

+0

इनपुट के लिए धन्यवाद, मैं मान रहा था कि क्लाइंट उस बंदरगाह पर भी बांधता है और इसलिए यदि पोर्ट किसी अन्य एप्लिकेशन द्वारा कब्जा कर लिया गया है तो ग्राहक संवाद करने में विफल रहेगा। – Shyam

+0

@TimeKeeper लिंक में उस परिवर्तन के बारे में इतना निश्चित नहीं है। उस बिंदु को अस्वीकार करता है जिसे मैं बनाने की कोशिश कर रहा था। हां, एक 'आधिकारिक' सूची भी हो सकती है, लेकिन दिन के अंत में, इसका मतलब स्क्वाट नहीं है। किसी भी बंदरगाह (अधिक या कम) का उपयोग करके सेवा को रोकना और कुछ अन्य सेवा को अवरुद्ध करना जो उस बंदरगाह का उपयोग करना चाहते हैं। आप यह मानने के लिए बेवकूफ होंगे कि आपका प्रोग्राम हमेशा सुनने के लिए एक निश्चित निश्चित बंदरगाह से जुड़ने में सक्षम होगा। – thecoshman

+0

आपका पॉइंट आपके वाक्यांश "सर्वोत्तम के लिए आशा" के साथ मान्य और संरक्षित है। हालांकि, चूंकि हम ज्ञात बंदरगाहों की सूची के बारे में बात कर रहे हैं, इसलिए हम विकिपीडिया के अनुमान के बजाय वास्तविक व्यक्ति का भी उपयोग कर सकते हैं, इसलिए सूची में नहीं पोर्ट चुनने का आपका सुझाव अधिक सार्थक है। –

2

आपको पीसी पीसी पर पोर्टन चुनने की ज़रूरत नहीं है। बस सर्वर पोर्ट एक विशिष्ट संख्या होना चाहिए।

जब ग्राहक सर्वर आईपी और पोर्ट नंबर से कनेक्ट होता है, तो ऑपरेटिंग सिस्टम क्लाइंट के लिए एक यादृच्छिक मुक्त पोर्ट चुनता है।

0

वहाँ उनमें से बहुत सारे @thecoshman रूप में उल्लेख किया है, और मैं त्वरित संदर्भ :)

258, 285, 325-332, 334-343, 703, 708, 717-728, 732 के लिए उनमें से कुछ को संकलित -740, 743, 745-746, 755-757, 766, 768, 778-77 9, 781-785, 787, 788-79 9, 803-80 9, 811-827, 834-846, 849-852, 855-859 , 863-872, 874-885, 88 9-899, 904-90 9, 914-952, 954-988, 1002-1007, 100 9, 14 9 1, 21 9 4-2196, 225 9, 2369, 2378, 27 9 4, 2873, 30 9 2, 3126 , 3301, 3546, 36 9 4, 3 9 4 9, 4048, 4144, 4194-4196, 41 9 8, 4315, 4317-431 9, 4332, 4337-433 9, 4363-4365, 4367, 4380-4388, 4397-439 9, 4424, 4434-4440 , 445 9-4483, 4489-99, 4501, 4503-4533, 4539-4544, 4560-4562, 4564-4565, 4571-4572, 4574-4589, 4606-4620, 4622-4657, 4693-4699, 4705-4710 , 4712-4724, 4734-4736, 4748, 4757-4773, 4775-4783, 4792-4799, 4805-4826, 4828-4836, 4852-4866, 4872-4875, 4886-4893, 4895-4898, 4903-4911, 4916-4935, 4938-4939, 4943-4948, 4954-4968, 4972-4979, 4981-4983, 4992-4998

संबंधित मुद्दे