我正在研究网络项目(套接字)。我读过一些像link>>和link>>的文章,但我无法理解它们。我想处理服务器端的操作,我应该理解它们。现在我认为 readfds 处理传入数据操作(我是对的吗?我不知道)和 writefds < / strong>是处理传出数据(用send()方法)操作(我是对的吗?我不知道)。最后一个; exceptfds 是处理套接字异常,如断开/关闭操作(我是对的吗?我不知道)。这些只是我的问题,我对它们一无所知(没有文章描述),我想在这里要求他们理解。有人可以帮我这个吗?我将实现I / O系统服务器端(高性能),我需要非常了解它们!感谢...
答案 0 :(得分:2)
从最普遍的意义上讲,select()
是一种让应用程序等到有趣的事情发生的方式。这个有趣的事件可以是:
您在readfds
中列出的其中一个套接字上提供了数据,因此从该套接字尝试read()
不会阻止。
您在writefds
中列出的其中一个套接字上可以使用写入空间,因此尝试write()
到该套接字不会阻止。
exceptfds
中列出的其中一个插座上发生了异常(例如收到的带外数据)。
您在timeout
中指定的时间已过,但没有其他任何事情发生。