在 Stevens 等人的 Unix Network Programming 中,非阻塞套接字使用选择调用的代码进行了说明。通常在阻塞文件描述符之间进行选择的相同调用。
我的理解是,非阻塞设计正是 select 的替代方案:我的代码不会在 select 调用中被阻塞,而是可以循环检查非阻塞描述符并在此之上执行其他操作。我的理解是错误的还是选择调用有什么神秘之处使其在非阻塞设计中不可避免?
考虑到实用性,我需要使用大量 tcp 套接字,将“个人”超时设置在每个套接字上。我想到了使用非阻塞设计并循环访问对应的数组。不选择是否合适?
谢谢你。