我正在创建与服务器的 TCP 连接,但我需要指定超时。我怎样才能做到这一点?这是简化的代码:tcpserveraddr, err := net.ResolveTCPAddr("tcp", Serveraddr+":"+Serverport)if err != nil { log.Printf("error during address relolution: %v\n", err)}serversocket, err := net.DialTCP("tcp", nil, tcpserveraddr)if err != nil { log.Printf("error during serversocket.DialTCP(): %v\n", err)}
1 回答
www说
TA贡献1775条经验 获得超8个赞
最直接的选择是使用net.DialTimeout():
net.DialTimeout(tcpserveraddr.Network(), tcpserveraddr.String(), 5*time.Second)
您还可以创建一个net.Dialer,它可以让您更好地控制拨号选项,然后DialContext()与您自己的上下文一起使用(带超时):
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
var d net.Dialer
d.DialContext(ctx, tcpserveraddr.Network(), tcpserveraddr.String())
- 1 回答
- 0 关注
- 153 浏览
添加回答
举报
0/150
提交
取消