[http] 포트가 정수가 아닌 문자열 인 이유는 무엇입니까?

Port메서드는 정수가 아닌 문자열을 반환합니다. 그 이유는 무엇이며 포트 앞에 “:”을 붙여도 안전합니까?



답변

콜론 뒤에 나타나는 것은 포트 번호 나 서비스 이름이 될 수 있기 때문입니다.

다음은 포트 번호 대신 서비스 이름이 사용되는 유효한 예입니다.

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 소켓 프로그래밍에서 특별한 의미를 지닙니다 : 시스템 할당 동적 포트를 요청합니다.

여러 기능으로 프로그래밍 할 필요가 있습니다.


답변