【发布时间】:2013-03-29 10:47:50
【问题描述】:
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: An invalid argument was provided。”我很困惑,本地IP地址应该总是为零吗?
版本:1.1 Beta 操作系统:Win7 64位
在 go 1.0.3 中试过,感觉还可以
【问题讨论】:
-
用 go tip 测试似乎工作正常。
-
在建立 TCP 连接时想要提供本地地址是很不寻常的,因此您可能想要使用
net.Dial("tcp", "192.168.1.104:5000")。如果您确实想指定本地地址和端口,请检查本地地址是否已连接到您的本地 PC,并且端口 6000 未在使用中。我在 linux 下尝试了你的示例,它运行良好,所以这可能是 Windows 问题。
标签: go