답변:
콜론 뒤에 나타나는 것은 포트 번호 나 서비스 이름이 될 수 있기 때문입니다.
다음은 포트 번호 대신 서비스 이름이 사용되는 유효한 예입니다.
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
. 그것들을 합치 지 마십시오.