Sockets ReadFromUDP不阻塞

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())

我尝试用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())
    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中已修复。如果没有任何其他因素阻止您这样做,那么升级可能是值得的。