sockets - ReadFromUDP 不阻塞

标签 sockets go

我尝试用go搭建一个udp server,发现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]))
}

我得到了一个列表:from <nil> got message:

最佳答案

我相信 OSX 中有一些问题。您的代码,modified only slightly to not ignore errors etc. , 在 Linux 上运行得很好。

关于sockets - ReadFromUDP 不阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918495/

相关文章:

api - 在 golang 中获取 oauth 用户 token 时出现 400 错误?

java - 如何将此 Java 接口(interface)和继承结构转换为 Golang?

c - 使用套接字读取 char* 时出现段错误

c - 使用 packet_mmap 发送任意以太网帧但无法设置环

python - 不允许发送数据? [WinError 10057]

mongodb - 使用 mongo-go-driver 与 MongoDB 的数据不一致

go - Go 中的工厂模式

go - Kafka : Sarama, 幂等性和 transactional.id

javascript - 无法从 Java Socket Server 向 NodeJS 客户端发送数据

c++ - "points to uninitialised byte(s)"Valgrind 错误