我正在使用Jan Newmarch的预定开始中的一些代码在我的mac上运行一个日间服务器。它使用以下代码
func main() {
service := ":1200"
tcpAddr, err := net.ResolveTCPAddr("ip4", service)
checkError(err)
listener, err := net.ListenTCP("tcp", tcpAddr)
checkError(err)然而,当我在Mac上运行它时,我会得到这个错误。
Fatal error: unknown network ip4在这段代码中,除了ip4之外,还有什么可以避免错误的吗?
tcpAddr, err := net.ResolveTCPAddr("ip4", service)注意,我也尝试了ip6并得到了相同的错误。
发布于 2014-07-09 17:28:39
根据文档 for ResolveTCPAddr,net arg的唯一有效值是"tcp“、"tcp4”和"tcp6“。
我怀疑你被ResolveTCPAddr和ResolveIPAddr搞混了
发布于 2014-07-09 17:29:01
"ip4“不是ResolveTCPAddr (来源)的有效网络。
使用ResolveIPAddr解析一般IP地址。
发布于 2014-07-09 17:31:04
"ip4“不是有效的字符串。
请参阅ResolveTCPAddr的文档
ResolveTCPAddr将addr解析为“主机:端口”或“ipv6 6-主机%区域:端口”的TCP地址,并解析网络网络上的一对域名和端口名,必须是"tcp“、"tcp4”或"tcp6"。IPv6的文字地址或主机名必须括在方括号中,如"::1:80“、”ipv6 6-主机:http“或”ipv6 6-主机%区域:80“。
守则如下:
func ResolveTCPAddr(net, addr string) (*TCPAddr, error) {
switch net {
case "tcp", "tcp4", "tcp6":
case "": // a hint wildcard for Go 1.0 undocumented behavior
net = "tcp"
default:
return nil, UnknownNetworkError(net)
}
a, err := resolveInternetAddr(net, addr, noDeadline)
if err != nil {
return nil, err
}
return a.toAddr().(*TCPAddr), nil
}https://stackoverflow.com/questions/24660046
复制相似问题