回答:
これは、コロンの後に表示されるものがポート番号またはサービス名のいずれかになる可能性があるためです。
以下は、ポート番号の代わりにサービス名が使用される有効な例です。
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
特定のサービスのポートマッピングは、を使用して検索できますnet.LookupPort
。Unixシステムでは、/etc/services
ファイルはマッピング用に提供されます。
数値の場合、デフォルト値は0です。関数の場合
func (u * URL) Port () string
ポートをスティングする代わりに戻り番号は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
。それらを混同しないでください。