关于使用 select()
的快速问题。
我正在使用 select()
从多个套接字中读取数据。当我查找如何使用 select()
的示例时,许多教程都展示了通过 for 循环并使用 FD_ISSET 检查的方法。我对这些教程的问题在于 for 循环是从 i = 0
开始的,并检查文件描述符 i
是否已设置位。那么 for 循环不能从您的 minfd 开始吗(就像您会跟踪 maxfd 一样)?或者我错过了什么?
以下链接是这样一个 for 循环的示例(查看他给出的第四个示例) http://www.developerweb.net/forum/showthread.php?t=2933
如果这是唯一一个使用这种 for 循环的示例,我可能会理解它是错误或糟糕的编码,但我已经看到了几个类似的 for 循环示例,无用地遍历成千上万的套接字,我相信我错过了什么。欢迎任何评论或意见。
for循环
迭代到maxfd
的原因是这是最简单的方法,而不必涉及特定实现数据结构以存储文件描述符。 - stefanB