recvfrom的非阻塞设置方法
来源:互联网 发布:怎么看淘宝隐藏优惠券 编辑:程序博客网 时间:2024/05/17 22:41
if (-1 == fcntl(iSocketfd, F_SETFL, O_NONBLOCK))
{
printf("fcntl socket error!\n");
return -1;
}
int iSocketLen = sizeof(struct sockaddr_in);
{
printf("fcntl socket error!\n");
return -1;
}
int iSocketLen = sizeof(struct sockaddr_in);
/* set recvfrom from server timeout */
struct timeval tv;
fd_set readfds;
tv.tv_sec = TIME_OUT_TIME;
tv.tv_usec = 0;
FD_ZERO(&readfds);
FD_SET(iSocketfd, &readfds);
if (select(iSocketfd+1,&readfds,NULL, NULL, &tv) > 0)
{
iRecvNum = recvfrom(iSocketfd,(void *)stRecvBuf,sizeof(*(stRecvBuf)),0, (struct sockaddr *)stRemote,&iSocketLen);
if (-1 == iRecvNum)
{
printf("received data error!\n");
iRet=0;
}
iRet=1;
struct timeval tv;
fd_set readfds;
tv.tv_sec = TIME_OUT_TIME;
tv.tv_usec = 0;
FD_ZERO(&readfds);
FD_SET(iSocketfd, &readfds);
if (select(iSocketfd+1,&readfds,NULL, NULL, &tv) > 0)
{
iRecvNum = recvfrom(iSocketfd,(void *)stRecvBuf,sizeof(*(stRecvBuf)),0, (struct sockaddr *)stRemote,&iSocketLen);
if (-1 == iRecvNum)
{
printf("received data error!\n");
iRet=0;
}
iRet=1;
printf("iRecvNum is %d\n",iRecvNum);
}
else
{
printf("timeout!there is no data arrived!\n");
iRet=0;
}
}
else
{
printf("timeout!there is no data arrived!\n");
iRet=0;
}
上面的代码只是我程序中的一段,所以上下文衔接肯定不好,但基本意思已经表达得很清楚了。另外,因为代码量太小,所以就不上传源码了:)
转自:http://blog.chinaunix.net/uid-8818071-id-2013083.html
- recvfrom的非阻塞设置方法
- 非阻塞recvfrom的设置
- 设置非阻塞的recvfrom
- 非阻塞recvfrom的设置
- 非阻塞recvfrom和connect的设置
- UDP服务recvfrom函数设置非阻塞
- 解决 recvfrom的 阻塞
- linux socket的阻塞和非阻塞设置方法
- 非阻塞socket设置方法
- 设置套接字为非阻塞的方法
- Linux 文件描述符设置为非阻塞的方法
- socket异步通信__如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- socket异步通信:如何设置成非阻塞模式,非阻塞模式下判断connect成功(失败),判断recv/recvfrom成功(失败),判断send/sendto
- socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
- 非阻塞模式的设置、设置socket为非阻塞模式 解决connect阻塞问题
- 阻塞非阻塞socket设置
- 阻塞与非阻塞设置
- 终端非阻塞输入的设置
- 数据结构与算法分析 树
- Android 联网监控抓包工具的制作(tcpdump的使用)
- python日志输出—logging配置文件
- ios多窗体项目
- 字符串常量不能改写+段错误(ubuntu)
- recvfrom的非阻塞设置方法
- Android Developers Service
- FUSE 计算机 - 用户空间文件系统
- 2011百度数据挖掘研发工程师实习生笔试面试题
- Animation与Interpolator及AnimationSet的用法
- Linux中proc系统
- Nodes, Sockets, Cores and FLOPS
- 迅雷数据挖掘面试
- 系统调用函数表