套接字select()时间切换?

时间:2014-01-08 10:26:46

标签: c linux sockets tcpsocket

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

1 个答案:

答案 0 :(得分:2)

我认为您可能误解了select调用实际执行的操作,select的手册页说明如下:

  

观看三组独立的文件描述符。那些   将在readfds中列出,以查看字符是否成为   可供阅读(更确切地说,是否可以阅读   块;特别是,文件描述符也已准备就绪   文件结束),那些在writefds中的人将被观看,看看是否有   write不会阻塞,而且会监视exceptfds中的那些   例外。 退出时,会对这些集进行修改以指示   哪些文件描述符实际上改变了状态。三者中的每一个   如果没有文件描述符,则可以将文件描述符集指定为NULL   将被观看相应的一类事件。

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

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

或者查看教程here