它不会阻塞,因为它在后台运行。然后你只需从连接中读取。


addr := net.UDPAddr{

    Port: 2000,

    IP:   net.ParseIP("127.0.0.1"),

}

conn, err := net.ListenUDP("udp", &addr) // code does not block here

if err != nil {

    panic(err)

}

defer ln.Close()


var buf [1024]byte

for {

    rlen, remote, err := conn.ReadFromUDP(buf[:])

    // Do stuff with the read bytes

}



var testPayload []byte = []byte("This is a test")


conn.Write(testPayload)

检查这个答案。它有一个 UDP 连接的工作示例,以及一些使其工作得更好的技巧。