用select接收数据的方法
来源:互联网 发布:淘宝刷买家秀平台 编辑:程序博客网 时间:2024/06/06 01:49
转载:select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
int select(int maxfd,fd_set *rdset,fd_set*wrset,fd_set *exset,struct timeval*timeout);
步骤如下——
socket s;
.....
fd_set set;
while(1)
{
FD_ZERO(&set);//将你的套节字集合清空
FD_SET(s, &set);//加入你感兴趣的套节字到集合,这里是一个读数据的套节字s
select(0,&set,NULL,NULL,NULL);//检查套节字是否可读,
//很多情况下就是是否有数据(注意,只是说很多情况)
//这里select是否出错没有写
if(FD_ISSET(s, &set) //检查s是否在这个集合里面,
{ //select将更新这个集合,把其中不可读的套节字去掉
//只保留符合条件的套节字在这个集合里面
recv(s,...);
}
//do something here
}
基于上面的讨论,可以轻松得出select模型的特点:
使用select函数的过程一般是:
以下是一个测试单个文件描述字可读性的例子:
int isready(intfd)
{
int rc;
fd_set fds;
struct tim tv;
FD_ZERO(&fds);
FD_SET(fd,&fds);
tv.tv_sec = tv.tv_usec = 0;
rc = select(fd+1, &fds, NULL, NULL,&tv);
if (rc < 0) //error
return -1;
return FD_ISSET(fd,&fds) ? 1 : 0;
}
- 用select接收数据的方法
- tcp socket数据接收 select 方法
- 一个select接收socket数据的例子
- 一个select接收socket数据的例子
- linux下的select用于串口接收数据时,select函数无法返回的问题
- SPComm接收数据的两种方法
- struts接收页面数据的方法
- 队列方法接收串口的数据
- jsp接收servlet传递数据的方法
- JSP页面接收数据的方法
- 页面上异步接收数据形成select
- 过滤DataTable数据的Select()方法
- 通过js根据接收的数据控制select标签的默认选择项
- 使用select侦查客户端的连接以及接收客户端的数据
- PhpStorm的POST方法无法接收表单数据的解决方法
- 利用ASP发送和接收XML数据的处理方法
- 利用ASP发送和接收XML数据的处理方法
- ASP发送和接收XML数据的处理方法
- 数字签名是什么?
- dfs 算法的使用
- hadoop相关2-window下的安装配置hadoop 基于cygwin
- js天数倒计时
- [APIO2012]派遣 (平衡树启发式合并)
- 用select接收数据的方法
- Red Hat Enterprise Linux AS release 4 配置YUM(rhel as 4 安装yum)
- linux yum 安装
- 一次性向mysql数据库中插入6000条数据 测试代码
- 坐标求三角形类
- (一)Openstack系列之 如何修改 并且调试 观察效果
- VS工程配置输出debug版dll及copy到指定目录,执行bat脚本的方法
- 【OFBiz】通过jquery的Ajax获取json数据
- 在TreeView中增加右键菜单功能