0

我创建了 6 个套接字并同时使用 select 监听所有这些套接字。我想知道 CPU 从一个插槽切换到另一个插槽需要多长时间。有人知道吗; 如果没有,有人可以指导我如何计算这个问题!

4

1 回答 1

2

我认为您可能误解了 select 调用实际上在做什么,select 的手册页说明如下:

监视三组独立的文件描述符。将监视 readfds 中列出的那些字符,以查看字符是否可供读取(更准确地说,查看读取是否不会阻塞;特别是,文件描述符在文件结束时也已准备好),那些在 writefds将被监视以查看写入是否不会阻塞,并且将监视那些在 exceptfds 中的异常。 在退出时,集合被修改以指示哪些文件描述符实际更改了 status。如果没有文件描述符将被监视用于相应的事件类,则三个文件描述符集中的每一个都可以指定为 NULL。

因此,当您对 select 的调用返回时,它将告诉您哪些文件描述符(如果有)(在您的情况下)准备好从中读取。然后由您决定阅读哪些内容以及如何阅读。

如果可以的话,我建议您查找一份 Unix Network Programming(由 Stevens、Fenner、Rudoff 撰写)。这将为您提供网络编程所需的所有背景信息和示例 C 代码。

或者看这里的教程

于 2014-01-08T10:53:38.617 回答