使用 select() 调用的并发 UDP 服务器

标签 c sockets select network-programming udp

我正在关注 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/

相关文章:

objective-c - 将指针分配给另一个指针会崩溃

javascript - 只从 node.js 中的套接字读取前 N 个字节

jquery - 将 UL 转换为带 OPTGROUP 的 SELECT

用于创建字符串的 C 宏

c - 采访 : deleting a node in linked list

c - 如何8字节对齐静态数组中的每个字符串?

node.js - Node JS : How can I create a fake tcp socket for testing servers

C套接字编程未输入端口

mysql - 对分组字段求和

c - 如何循环 select() 以无限轮询数据