जवाबों:
ऐसा इसलिए है क्योंकि बृहदान्त्र के बाद जो दिखाई देता है वह या तो पोर्ट नंबर या सेवा का नाम हो सकता है।
निम्नलिखित एक मान्य उदाहरण है जहां सेवा नाम का उपयोग पोर्ट नंबर के बजाय किया जाता है:
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
किसी विशेष सेवा के लिए पोर्ट मैपिंग का उपयोग करके देखा जा सकता है net.LookupPort
। यूनिक्स सिस्टम पर, /etc/services
फाइल मैपिंग के लिए तैयार है।
किसी संख्या के लिए डिफ़ॉल्ट मान 0 है: यदि कोई फ़ंक्शन
func (u * URL) Port () string
पोर्ट स्टिंग के बजाय रिटर्न नंबर 0 होगा
पोर्ट 0 टीसीपी / आईपी नेटवर्किंग में एक आरक्षित पोर्ट है, जिसका अर्थ है कि इसका उपयोग टीसीपी या यूडीपी संदेशों में नहीं किया जाना चाहिए। हालाँकि, पोर्ट 0 नेटवर्क प्रोग्रामिंग में विशेष महत्व रखता है, विशेषकर यूनिक्स सॉकेट प्रोग्रामिंग: सिस्टम-आबंटित, गतिशील पोर्ट के लिए अनुरोध करने के लिए।
यह कई कार्यों में प्रोग्रामिंग की आवश्यकता है
url.port()
एक स्ट्रिंग देता है ... लेकिन GURL भी प्रदान करता है url.has_port()
। इसलिए सैद्धांतिक रूप से हम अंतर कर सकते हैं http://example.com:/path
(एक पोर्ट है, लेकिन port()
खाली-स्ट्रिंग है) से http://example.com/path
(पोर्ट नहीं है)। बेशक GURL खुद ऐसा नहीं करता है! यह भी रिपोर्ट http://example.com:80/path
करता है कि "स्पष्ट रूप से निर्दिष्ट पोर्ट नहीं है", इस आधार पर कि योजना के साथ स्पष्ट रूप से निर्दिष्ट पोर्ट निरर्थक है। जो पागल है , लेकिन कभी दिमाग नहीं ... प्वाइंट है, String
नहीं है Optional
। उन्हें भ्रमित मत करो।