package main
import (
"fmt"
reuse "github.com/libp2p/go-reuseport"
)
func main() {
conn, err := reuse.Dial("a.b.c.d:port1", "d.e.f.g:port2")
fmt.Println(conn, err)
}
以上是代码
这个表盘会设置袜子SO_REUSEADDR,但我所说的是
有时我可以reuse.Dial("a.b.c.d:port1","d.e.f.g:port2")
没有错误,有时这个返回错误cannot assign requested address
,内核使用一些算法让这种情况发生
ps:内核版本2.6.32-431