package main
import (
"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 version:1.1 Beta 操作系统:Win7 64位
试着去1.0.3,似乎没问题
答案 0 :(得分:0)
Go net
包与大多数此类实现一样,识别用于连接localhost的仅端口语法:
:5000
相当于
<my-ip-address>:5000
因此,您可以这样做:
net.Dial("tcp", ":5000")
答案 1 :(得分:0)
不,可以在DialTCP中指定laddr
参数。问题是指定的端口(6000)在default Win7 dynamic port range之外,不能用于传出连接。它实际上适用于Linux和Mac(如果您不忘记将IP地址更改为您自己的系统之一)。