package mainimport ( "fmt" "net")func main() { var localaddr net.TCPAddr var remoteaddr net.TCPAddr localaddr.IP = net.ParseIP("192.168.1.104") localaddr.Port = 6000 remoteaddr.IP = net.ParseIP("192.168.1.104") remoteaddr.Port = 5000 if localaddr.IP == nil || remoteaddr.IP == nil { fmt.Println("error") } if _, err := net.DialTCP("tcp", &localaddr, &remoteaddr); err != nil { fmt.Println(err) } fmt.Println("End")}如果函数指定本地 IP 地址,它总是报告运行时错误“dial tcp 192.168.1.104:5000:提供了无效参数”。我很困惑,本地 IP 地址是否应该始终为零?go 版本:1.1 Beta 操作系统:Win7 64 位在 go 1.0.3 中尝试过,似乎还可以
2 回答
aluckdog
TA贡献1847条经验 获得超7个赞
Go 的net
包,像大多数这样的实现一样,识别用于连接到 localhost 的仅端口语法:
:5000
相当于
<my-ip-address>:5000
因此,您可以这样做:
net.Dial("tcp", ":5000")
RISEBY
TA贡献1856条经验 获得超5个赞
不,可以laddr
在 DialTCP 中指定参数。问题是指定的端口 (6000) 超出了默认的 Win7 动态端口范围,无法用于传出连接。它实际上适用于 Linux 和 Mac(如果您不忘记将 IP 地址更改为您自己的系统之一)。
- 2 回答
- 0 关注
- 525 浏览
添加回答
举报
0/150
提交
取消