我正在关注 this例子。我想做的唯一改变是,我希望服务器不是 TCP 并发服务器,而是 UDP 服务器。
我最初收到的错误消息是不支持 listen(),这是有道理的。在 UDP 套接字上使用 listen() 是没有意义的。
现在我卡在 accept: Operation not supported
错误消息。导致错误的行是 - newfd = accept(listener,(struct sockaddr *)&remoteaddr,&addrlen);
我的问题是 - 如何在 UDP 套接字上进行 I/O 多路复用?
最佳答案
因为 UDP 不是面向连接的,所以你不能接受。你必须从绑定(bind)的 UDP 套接字中读取,它会给你一个数据包。
关于使用 select() 调用的并发 UDP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762124/