为了账号安全,请及时绑定邮箱和手机立即绑定

在 net.DialTCP 中指定本地 IP 地址

在 net.DialTCP 中指定本地 IP 地址

Go
慕姐8265434 2021-06-04 16:15:45
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")


查看完整回答
反对 回复 2021-06-07
?
RISEBY

TA贡献1856条经验 获得超5个赞

不,可以laddr在 DialTCP 中指定参数。问题是指定的端口 (6000) 超出了默认的 Win7 动态端口范围,无法用于传出连接。它实际上适用于 Linux 和 Mac(如果您不忘记将 IP 地址更改为您自己的系统之一)。


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 525 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信