想作为一个client发起一个tcp连接,指定源地址和源端口, 同时连接带有timeout功能
我看了net库
有一个函数
func DialTimeout(network, address string, timeout time.Duration) (Conn, error)
可以实现带有timeout的tcp连接,但是它无法指定源端口,源地址
另一个函数
func DialTCP(net string, laddr, raddr *TCPAddr) (*TCPConn, error)
可以带有源地址,源端口,但是,却没有timeout功能
有什么办法能实现两者兼而有之? golang目前是初学者,隐约觉得可以通过为net.Dailer这个结构来指定timeout, 但是还是不会,希望有大侠能帮忙演示简单的示例代码?
谢谢了!
https://github.com/golang/go/blob/master/src/net/dial.go#L289
看下源码你就会发现,net包的Dial方法也是使用Dialer,DialTimeout只不过是设置了Dialer的timeout
#5
更多评论