【发布时间】:2011-08-16 09:45:09
【问题描述】:
这是 select 语句的原型(根据手册页):
int select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *timeout);
我知道将 readfds 参数用于什么用途:使用此参数,您可以查看数据是否已写入您的套接字之一。另一方面,我发现的 writefds 页面指出,这是为了查看“是否有任何套接字准备好发送()数据”。但是,这是什么意思?在 Quin 和 Shute 的 Windows Sockets Network Programming 中,它说这会检测连接状态或可写状态。这有什么意义?是否只是检查套接字是否仍然与已连接的客户端连接并测试向该套接字写入内容是否有任何用处?
那么:通常使用 writefds 做什么?
【问题讨论】:
-
select 确实是一个过时的界面。如果可能的话,我建议使用 libevent 之类的库(它是 BSD 许可的)
标签: c