Port
메서드는 정수가 아닌 문자열을 반환합니다. 그 이유는 무엇이며 ":"로 포트 접두사를 붙이면 안전합니까?포트가 정수가 아닌 문자열입니까?
96
A
답변
140
콜론 다음에 나타나는 것은 포트 번호 또는 서비스 이름이 될 수 있기 때문입니다. 특정 서비스의 포트 매핑 net.LookupPort
를 사용하여 조회 할 수 있습니다
listener, err := net.Listen("tcp", "localhost:https") // port 443
// ...
:
다음은 서비스 이름 대신 포트 번호로 사용되는 유효한 예입니다. 유닉스 시스템에서는 /etc/services
파일이 맵핑을 위해 제공됩니다. 숫자에 대한
1
는 기본값은 0입니다 : 대신 포트를 따끔의 함수 경우
func (u * URL) Port() string
반환 번호 0
포트 0입니다 TCP/IP 네트워킹에 예약 된 포트입니다 의미 TCP 또는 UDP 메시지에는 사용해서는 안됩니다. 그러나 포트 0은 네트워크 프로그래밍, 특히 시스템에 할당 된 동적 포트를 요청하기위한 유닉스 소켓 프로그래밍에서 특별한 의미를 지닙니다.
여러 가지 기능의 프로그래밍이 필요합니다.
저는 항상 개방형/폐쇄 형 이분법에 흥미가 있습니다. 기본 설정 (예 : 잘 알려진 포트 및 서비스)이있는 _mixed_ 유형을보고 싶지만이를 확장하여 궁극적으로 자동 완성을 지원할 수 있습니다. 내 제한된 작업 지식에서 TypeScripts ADT는 가장 가까이에 오게됩니다. Swift ADT는이를 직접 표현할 수도 있습니다. –