将net.DialTimeout与特定的本地端口一起使用

时间:2019-05-06 10:43:25

标签: go

我正在尝试使用特定的源IP端口,但是net.DialTimeout没有laddr参数

my_dial, err := net.DialTimeout("tcp", addr, 3*time.Second)
conn := tls.Client(my_dial, tlsconf)

然后我检查了文档,唯一支持laddr的方法是:

func DialIP(network string, laddr, raddr *IPAddr) (*IPConn, error)

但是它返回net.IPConn而不是net.Conn。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

DialDialTimeout只是net.Dialer类型的帮助者,其中记录了所有可用的选项。

您可以设置本地地址和超时。 Dialer还有一个DialContext方法可以直接使用上下文,而不是根据需要使用超时。

d := net.Dialer{
    LocalAddr: lAddr,
    Timeout: timeout,
}
conn, err := d.Dial(network, address)
...