Port
Метод возвращает строку , а не целое число. В чем причина этого и безопасно ли ставить перед портом префикс ":"?
103
Это связано с тем, что то, что появляется после двоеточия, может быть либо номером порта, либо именем службы.
Ниже приведен допустимый пример, в котором имя службы используется вместо номера порта:
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
Сопоставление портов для конкретной службы можно найти с помощью net.LookupPort
. В системах Unix /etc/services
источник файла для сопоставлений.
Для числа значение по умолчанию - 0: если функция
номер возврата вместо sting порт будет 0
Порт 0 - это зарезервированный порт в сети TCP / IP, что означает, что он не должен использоваться в сообщениях TCP или UDP. Однако порт 0 имеет особое значение в сетевом программировании, особенно в программировании сокетов Unix: для запроса динамических портов, выделенных системой.
это необходимость программирования в нескольких функциях
источник
url.port()
возвращает строку ... но GURL также предоставляетurl.has_port()
. Итак, теоретически мы могли бы отличитьhttp://example.com:/path
(есть порт, ноport()
пустая строка) отhttp://example.com/path
(нет порта). Конечно, сам GURL этого не делает! Он даже сообщает, чтоhttp://example.com:80/path
«не имеет порта» на том основании, что явно указанный порт является избыточным для схемы. Что безумие , ноString
ничего ... Дело в том, что это не такOptional
. Не смешивайте их.