golang的UDP,听不到阻塞呼叫?
我正在尝试使用UDP作为协议在两台计算机之间创建一条双向街道。也许我不理解net.ListenUDP的意义。这不是一个阻拦电话吗?正在等待客户端连接golang的UDP,听不到阻塞呼叫?,go,udp,Go,Udp,我正在尝试使用UDP作为协议在两台计算机之间创建一条双向街道。也许我不理解net.ListenUDP的意义。这不是一个阻拦电话吗?正在等待客户端连接 addr := net.UDPAddr{ Port: 2000, IP: net.ParseIP("127.0.0.1"), } conn, err := net.ListenUDP("udp", &addr) // code does not block here defer conn.Close() if err !
addr := net.UDPAddr{
Port: 2000,
IP: net.ParseIP("127.0.0.1"),
}
conn, err := net.ListenUDP("udp", &addr)
// code does not block here
defer conn.Close()
if err != nil {
panic(err)
}
var testPayload []byte = []byte("This is a test")
conn.Write(testPayload)
它没有阻塞,因为它在后台运行。然后你只需从连接中读取
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)
检查答案。它有一个go中UDP连接的工作示例,以及一些使其工作得更好的提示。UDP是无连接的,因此在ListenUDP上阻塞是没有意义的