কেন পোর্ট একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা হয় না?


103

Portপদ্ধতি একটি স্ট্রিং এবং একটি পূর্ণসংখ্যা ফেরৎ। এর কারণ কী এবং ":" দিয়ে বন্দরের উপসর্গ রাখা নিরাপদ?

উত্তর:


143

এটি কারণ কোলনের পরে যা প্রদর্শিত হয় তা হয় কোনও বন্দর নম্বর বা পরিষেবার নাম হতে পারে।

নিম্নলিখিতটি একটি বৈধ উদাহরণ যেখানে পরিষেবা নামটি কোনও পোর্ট নম্বরের পরিবর্তে ব্যবহৃত হয়:

listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...

কোনও নির্দিষ্ট পরিষেবার জন্য পোর্ট ম্যাপিং ব্যবহার করে দেখা যাবে net.LookupPort। ইউনিক্স সিস্টেমে /etc/servicesফাইলটি ম্যাপিংয়ের জন্য উত্সাহিত হয়।


1
আমি সর্বদা ওপেন টাইপ / বদ্ধ টাইপের দ্বিবিজ্ঞান দ্বারা আগ্রহী। আমি একটি মিশ্র প্রকারের মতো কিছু দেখতে চাই যেখানে কিছু ডিফল্ট রয়েছে (এখানে যেমন সুপরিচিত বন্দর এবং পরিষেবাগুলি) তবে এগুলি প্রসারিত করার অনুমতি দেয়, শেষ পর্যন্ত অটোকম্প্লিপশনকে সমর্থন করে। আমার সীমিত কাজের জ্ঞানের মধ্যে টাইপস্রিপ্টস এডিটিগুলি নিকটে আসে, সম্ভবত সুইফটস এডিটিগুলিও এটি সরাসরি প্রকাশ করতে পারে।
স্টিফান হানকে

0

একটি সংখ্যা জন্য ডিফল্ট মান 0: যদি একটি ফাংশন হয়

 func (u * URL) Port () string

বন্দরের স্টিংয়ের পরিবর্তে রিটার্ন নম্বর 0 হবে

পোর্ট 0 টিসিপি / আইপি নেটওয়ার্কিংয়ের একটি সংরক্ষিত বন্দর, যার অর্থ এটি টিসিপি বা ইউডিপি বার্তায় ব্যবহার করা উচিত নয়। যাইহোক, পোর্ট 0 নেটওয়ার্ক প্রোগ্রামিংয়ে বিশেষত ইউনিক্স সকেট প্রোগ্রামিংয়ে বিশেষ গুরুত্ব বহন করে: সিস্টেম-বরাদ্দকৃত, গতিশীল পোর্টগুলির জন্য অনুরোধ করার জন্য।

এটি বিভিন্ন কার্যক্রমে প্রোগ্রামিংয়ের প্রয়োজন


LibGURL এ, url.port()একটি স্ট্রিং প্রদান করে ... তবে জিআরএলও সরবরাহ করে url.has_port()। সুতরাং তাত্ত্বিকভাবে আমরা পৃথক করতে পারি http://example.com:/path(একটি বন্দর রয়েছে, তবে port()খালি স্ট্রিং রয়েছে) থেকে http://example.com/path(কোনও বন্দর নেই)। অবশ্যই জিআরএল নিজে এটি করে না! এমনকি এটি এমনকি http://example.com:80/path"বন্দর নেই" বলেও জানিয়েছে যে সুস্পষ্টভাবে নির্দিষ্ট বন্দরটি এই প্রকল্পের সাথে অপ্রয়োজনীয়। যা পাগল , তবে কিছু মনে করবেন না ... পয়েন্টটি হ'ল, Stringতা নয় Optional। তাদের মধ্যে বিবাদ করবেন না।
কুক্সপ্লসোন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.