উত্তর:
এটি কারণ কোলনের পরে যা প্রদর্শিত হয় তা হয় কোনও বন্দর নম্বর বা পরিষেবার নাম হতে পারে।
নিম্নলিখিতটি একটি বৈধ উদাহরণ যেখানে পরিষেবা নামটি কোনও পোর্ট নম্বরের পরিবর্তে ব্যবহৃত হয়:
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
কোনও নির্দিষ্ট পরিষেবার জন্য পোর্ট ম্যাপিং ব্যবহার করে দেখা যাবে net.LookupPort
। ইউনিক্স সিস্টেমে /etc/services
ফাইলটি ম্যাপিংয়ের জন্য উত্সাহিত হয়।
একটি সংখ্যা জন্য ডিফল্ট মান 0: যদি একটি ফাংশন হয়
func (u * URL) Port () string
বন্দরের স্টিংয়ের পরিবর্তে রিটার্ন নম্বর 0 হবে
পোর্ট 0 টিসিপি / আইপি নেটওয়ার্কিংয়ের একটি সংরক্ষিত বন্দর, যার অর্থ এটি টিসিপি বা ইউডিপি বার্তায় ব্যবহার করা উচিত নয়। যাইহোক, পোর্ট 0 নেটওয়ার্ক প্রোগ্রামিংয়ে বিশেষত ইউনিক্স সকেট প্রোগ্রামিংয়ে বিশেষ গুরুত্ব বহন করে: সিস্টেম-বরাদ্দকৃত, গতিশীল পোর্টগুলির জন্য অনুরোধ করার জন্য।
এটি বিভিন্ন কার্যক্রমে প্রোগ্রামিংয়ের প্রয়োজন
url.port()
একটি স্ট্রিং প্রদান করে ... তবে জিআরএলও সরবরাহ করে url.has_port()
। সুতরাং তাত্ত্বিকভাবে আমরা পৃথক করতে পারি http://example.com:/path
(একটি বন্দর রয়েছে, তবে port()
খালি স্ট্রিং রয়েছে) থেকে http://example.com/path
(কোনও বন্দর নেই)। অবশ্যই জিআরএল নিজে এটি করে না! এমনকি এটি এমনকি http://example.com:80/path
"বন্দর নেই" বলেও জানিয়েছে যে সুস্পষ্টভাবে নির্দিষ্ট বন্দরটি এই প্রকল্পের সাথে অপ্রয়োজনীয়। যা পাগল , তবে কিছু মনে করবেন না ... পয়েন্টটি হ'ল, String
তা নয় Optional
। তাদের মধ্যে বিবাদ করবেন না।