遇到的问题
小于 1 分钟
遇到的问题
func (c *Client) connectUDPClient(from, to *net.UDPAddr) *net.UDPConn {
log.Println("start connecting")
conn, err := net.DialUDP("udp", from, to)
if err != nil {
log.Fatalln("UDP connect fail", err)
}
log.Println("Connect success")
return conn
}
客户端启动时,对应的客户端没开启,但是连接建立了起来。通过定位知道是net.DialUDP出了问题。并没有像预期一样抛出错误。
gpt的描述
net.DialUDP 函数用于建立一个UDP连接。不同于TCP,UDP是一个无连接的协议,这意味着在发送或接收数据之前,它不需要建立一个持久的连接。因此,当您使用 net.DialUDP 时,它并不会检查远程地址是否真的有一个活动的服务在监听;它仅仅是设置了一个本地的socket来发送和接收UDP数据包。
在这个前提下应对相应情况,应该要设定超时,以解决这个问题。