簡體   English   中英

ReadFromUDP不會阻止

[英]ReadFromUDP does not block

我試圖用go構建udp服務器,發現UDPConn的ReadFromUDP方法不會阻塞線程。 我在Google上搜索到有人遇到此問題,但未找到解決方案。

我的系統是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]))
}

我得到了一個清單: from <nil> got message:

我相信OSX中有問題。 您的代碼( 僅進行了少量修改以不忽略錯誤等)在Linux上運行良好。

我將系統更新為上述osx 10.8.4代碼,無法正常運行。

我將udp服務器代碼與我的進行比較。

並使用buf := make([]byte, 1024)更改var buf []byte buf := make([]byte, 1024)

現在效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM