我正在打破我的想法,试图了解如何让我自己编写的客户端/服务器接受多个套接字连接。
连接是一个数据报(UDP),目前是基于getaddrinfo(3) man page
works nice实现的,但是每个客户端都需要等待早期连接的处理过程。
我听说过 select,但在其手册页中说:
select() 可用于以可移植且有效的方式解决许多问题,天真的程序员试图使用线程、分叉、IPC、信号、内存共享等以更复杂的方式解决这些问题。
和更多:
Linux 特有的 epoll(7) API 提供了一个在监控大量文件描述符时比 select(2) 和 poll(2) 更高效的接口。
那么,是吗?epoll 简直比 select 好?还是视情况而定?如果取决于,取决于什么?
epoll 手册页有一个部分示例,所以我试图理解它。
现在,(在服务器上)我想,我需要一个线程来监听一个线程并写入另一个线程。但是如何控制部分消息的完成呢?如果两个客户端交错发送部分消息,如何识别?通过 sockaddr?如果它是唯一需要,我可以在没有池的情况下管理它,那么为什么要使用 epoll 呢?
谁能尝试向我解释,如何制作或在哪里了解多连接客户端-服务器 UDP 应用程序?