我试图用go来构建一个udp服务器,并且发现UDPConn的ReadFromUDP方法不会阻塞该线程。我谷歌,有一些人面临这个问题,没有找到解决办法。ReadFromUDP不会阻止
我的系统是OSX 10.8.2,走的版本是1.1.1
代码列表波纹管
addr, _ := net.ResolveUDPAddr("udp", "localhost:10234")
conn, err := net.ListenUDP("udp", addr)
if err != nil {
fmt.Println(err.Error())
return
}
defer conn.Close()
var buf []byte
for {
n, remote_addr, _ := conn.ReadFromUDP(buf)
fmt.Println("from", remote_addr,"got message:", string(buf[:n]))
}
我得到的名单:from <nil> got message:
我想出来,[golang问题](https://code.google.com/p/go/issues/detail?id=4796)请注意,在osx 10.8.2中有问题,但也有问题在我的代码 – enzoyang
感谢您的帮助 – enzoyang
@enzoyang根据错误报告,这是固定在10.8.3。如果没有其他事情阻止你这样做,那么升级可能是值得的。 – Intermernet