【发布时间】:2011-03-08 23:23:39
【问题描述】:
初始问题here
所以我一直在阅读异步套接字,我还有几个问题。主要是混凝土。
1:我可以使用带有 select() 的阻塞套接字而不会产生任何影响,对吗?
2:当我使用 FD_SET() 时,我会附加当前的 fd_set* 而不会更改它,对吗?
3:当使用 FD_CLR() 时,我可以简单地传递我希望删除的套接字的套接字 ID,对吧?
4:当我使用 FD_CLR() 删除套接字时,是否有一种重置 Max File Descriptor (nfds) 的首选方法?
5:假设我将所有连接的套接字都放在一个向量中,当 select() 返回时,我可以遍历该向量并检查 if (FD_ISSET (theVector[loopNum], &readFileSet)) 以查看是否需要读取任何数据,对吗?如果返回 true,我可以简单地使用我在同步套接字上使用的相同接收函数来检索该数据?
6: 如果 select() 尝试从关闭的套接字中读取会发生什么?我知道它返回 -1,但它设置了 errno 还是有其他方法可以继续使用 select()?
7:你为什么这么厉害? =D
感谢您抽出宝贵的时间,很抱歉让您头疼,希望您能帮上忙!
【问题讨论】:
标签: c++ sockets select asynchronous