文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux select多路复用

linux select多路复用

时间:2010-07-18  来源:fireworks2

select多路复用

select函数可以实现IO多路转接,其原型如下:

#include <sys/select.h>
int select(int maxfdp1,
    fd_set *restrict readfds, // 关注的读fd
    fd_set *restrict writefds, // 关注的写fd
    fd_set *restrict exceptfds, // 关注的异常fd
    struct timeval *restrict tvptr // 等待时间
);
如果三个关注的fd集合全设置为NULL,则select可被当做定时器。
返回的情况有三种,超时、正常、出错。

fd0    fd1     ...
 0  0  ...
FD_SET


其中,fd_set数据类型是位集,每个fd在其中占一位,可对其进行四种相关操作:
int FD_ISSET(int fd, fd_set * fdset);  // 是否在fdset中
void FD_SET(int fd, fd_set * fdset);   // 加入到fdset中
void FD_CLR(int fd, fd_set * fdset);   // 从fdset中清除
void FD_ZERO(int fd, fd_set * fdset);  // 清空所有fdset


默认情况下,fd最大值为1024,所以使用select时,可以维持的连接数也小于1025,不过可以通过内核进行修改。




排行榜 更多 +
胜利女神新的希望小米服手游下载

胜利女神新的希望小米服手游下载

角色扮演 下载
我要当老板伐木工厂游戏下载

我要当老板伐木工厂游戏下载

模拟经营 下载
涡轮螺旋桨最新版下载

涡轮螺旋桨最新版下载

模拟经营 下载