diff --git a/gold/link/listen.go b/gold/link/listen.go index 646c860..535f6c8 100644 --- a/gold/link/listen.go +++ b/gold/link/listen.go @@ -4,6 +4,7 @@ import ( "bytes" "io" "net" + "net/netip" "runtime" "strconv" "sync" @@ -18,10 +19,11 @@ import ( // 监听本机 endpoint func (m *Me) listen() (conn *net.UDPConn, err error) { - conn, err = net.ListenUDP("udp", m.myend) + conn, err = net.ListenUDP("udp", net.UDPAddrFromAddrPort(netip.MustParseAddrPort(m.myend.String()))) if err != nil { return } + m.myend = conn.LocalAddr() logrus.Infoln("[listen] at", m.myend) var mu sync.Mutex for i := 0; i < runtime.NumCPU()*4; i++ { diff --git a/gold/link/me.go b/gold/link/me.go index b18bfb2..6a3b918 100644 --- a/gold/link/me.go +++ b/gold/link/me.go @@ -29,7 +29,7 @@ type Me struct { // 本机子网 subnet net.IPNet // 本机 endpoint - myend *net.UDPAddr + myend net.Addr // 本机环回 link loop *Link // 本机活跃的所有连接