我在通过tls.dial或net.dial连接到本地golang TLS服务器时遇到一些问题。服务器ist以地址localhost:10001开头,我可以使用netcat(仅是netcat localhost 10001)连接到该服务器,但是尝试使用golangs的Dial方法进行连接(拒绝连接)。这可能是什么原因?需要指出的重要一件事是,我正在Debian VM上对其进行测试,并在其中卸载了网络管理器,以便可以自己配置网络接口(静态ip)。我的猜测是net.dial在找到正确的接口时会遇到一些问题,但是netcat不能做到golang的方法呢?我在两端尝试了所有不同类型的地址(本地主机上的服务器,:: 1、127.0.0.1;客户端相同)。在我的Windows主机系统上,它可以正常工作(因此,问题可能与服务器无关)。 预先感谢。
conn, err := tls.Dial("tcp", h.IP+":"+h.Port, conf)
if err != nil {
log.Println(err)
return empty
}
// do cleanup
defer conn.Close()
d := Craft_PKG( data )
//write package
WriteChunks( conn, d )
这是客户端代码,也是
ln, err := tls.Listen("tcp", "localhost:"+(*port), config)
if err != nil {
log.Println(err)
return err
}
defer ln.Close()
for {
conn, err := ln.Accept()
if err != nil {
log.Println(err)
continue
}
// start the handler for every incoming connection
go h(conn)
}
服务器代码。一切都非常简单,并且可以在netcat和我提到的Host系统中使用。