我创建了6个套接字并同时使用select监听所有套接字。我想知道CPU从1个插槽切换到另一个插槽需要多长时间。有人知道吗;如果没有,有人可以指导我如何计算这个问题!
答案 0 :(得分:2)
我认为您可能误解了select调用实际执行的操作,select的手册页说明如下:
观看三组独立的文件描述符。那些 将在readfds中列出,以查看字符是否成为 可供阅读(更确切地说,是否可以阅读 块;特别是,文件描述符也已准备就绪 文件结束),那些在writefds中的人将被观看,看看是否有 write不会阻塞,而且会监视exceptfds中的那些 例外。 退出时,会对这些集进行修改以指示 哪些文件描述符实际上改变了状态。三者中的每一个 如果没有文件描述符,则可以将文件描述符集指定为NULL 将被观看相应的一类事件。
因此,当您对select的调用返回它将告诉您的内容时(如果有的话)文件描述符(在您的情况下)可以从中读取。然后由您来决定阅读哪些内容以及如何阅读。
如果可以,我建议追踪一份Unix网络编程(由Stevens,Fenner,Rudoff编写)。这将为您提供网络编程所需的所有背景信息和示例C代码。
或者查看教程here