2017-12-27 408 views

回答

140

这是因为在冒号后面出现的可以是端口号或服务名称。

以下是其中服务名来代替端口号的有效例如:

listener, err := net.Listen("tcp", "localhost:https") // port 443 
// ... 

针对特定服务的端口映射可以使用net.LookupPort进行查找。在Unix系统上,/etc/services文件来源于映射。

+1

我总是对开放型/封闭型二分法感兴趣。我想看到类似_mixed_类型的地方,其中有一些默认值(这里是例如众所周知的端口和服务),但也允许扩展它们,最终支持自动完成。在我有限的工作知识中,TypeScripts ADTs最接近,也许Swifts ADTs也可以直接表达这一点。 –

1

对于一些默认值为0:如果一个函数

func (u * URL) Port() string 

回报数字,而不是刺痛端口为0

端口0是在TCP/IP网络保留端口,这意味着它不应该用于TCP或UDP消息。但是,端口0在网络编程中具有特殊意义,尤其是Unix套接字编程:用于请求系统分配的动态端口。

这是一个需要在几个功能编程

相关问题