我試圖用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