Sockets ReadFromUDP不阻塞
我尝试用go构建一个udp服务器,发现UDPConn的ReadFromUDP方法不会阻塞线程。我在谷歌上发现,有些人面临这个问题,但没有找到解决办法 我的系统是osx 10.8.2,go版本是1.1.1 代码列表如下Sockets ReadFromUDP不阻塞,sockets,go,Sockets,Go,我尝试用go构建一个udp服务器,发现UDPConn的ReadFromUDP方法不会阻塞线程。我在谷歌上发现,有些人面临这个问题,但没有找到解决办法 我的系统是osx 10.8.2,go版本是1.1.1 代码列表如下 addr, _ := net.ResolveUDPAddr("udp", "localhost:10234") conn, err := net.ListenUDP("udp", addr) if err != nil { fmt.Println(err.Error())
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]))
}
我从收到的消息中得到了一个列表:
,
,,我相信OSX中有些东西坏了。您的代码在Linux上运行得很好。我相信OSX中有问题。您的代码在Linux上运行良好。我将系统更新为osx 10.8.4以上的代码不正常
我和我的比较
并使用buf:=make([]字节,1024)
它现在运行良好。我将我的系统更新为osx 10.8.4,上面的代码不正常 我和我的比较 并使用
buf:=make([]字节,1024)
它现在运行得很好。我想出来了,注意osx 10.8.2中存在问题,但我的code@enzoyang根据错误报告,这在10.8.3中已修复。如果没有任何其他因素阻止您这样做,那么升级可能是值得的。我发现,osx 10.8.2中存在问题,但我的code@enzoyang根据错误报告,这在10.8.3中已修复。如果没有任何其他因素阻止您这样做,那么升级可能是值得的。