udp利用select实现超时重传
来源:互联网 发布:网络防御模型ppdr 编辑:程序博客网 时间:2024/06/01 07:31
int maxfdp;
fd_set fds;
struct timeval timeout = {1, 0};//设置select等待3秒,3秒轮询,非阻塞就置0
while(1)
{
Sendto(skt, sendline, sizeof(vip_hdr) + 100, 0, (SA *)saddr, sizeof(SA));
FD_ZERO(&fds);//每次循环都要清空集合,否则不能检测描述符变化
FD_SET(skt, &fds);//添加描述符
maxfdp = skt + 1;//描述符最大值加1
switch(select(maxfdp, &fds, NULL, NULL, &timeout))//select的使用
{
case -1:
exit(-1);
break;
case 0:
timeout.tv_sec = 1;
timeout.tv_usec = 0;
printf("\nhave not recieve net_info packet,send request again!");
continue;
break;
default:
if(FD_ISSET(skt,&fds))//测试skt是否可读,即网络上是否有数据
{
// printf("\n###########this is ICT 1.1##########################");
n = Recvfrom(skt, recvline, MAXLINE, 0,NULL,&len);
printf("\n###########this is after recv####%u######################",n);
break;//如果读到数据,退出while循环
}
}
}
fd_set fds;
struct timeval timeout = {1, 0};//设置select等待3秒,3秒轮询,非阻塞就置0
while(1)
{
Sendto(skt, sendline, sizeof(vip_hdr) + 100, 0, (SA *)saddr, sizeof(SA));
FD_ZERO(&fds);//每次循环都要清空集合,否则不能检测描述符变化
FD_SET(skt, &fds);//添加描述符
maxfdp = skt + 1;//描述符最大值加1
switch(select(maxfdp, &fds, NULL, NULL, &timeout))//select的使用
{
case -1:
exit(-1);
break;
case 0:
timeout.tv_sec = 1;
timeout.tv_usec = 0;
printf("\nhave not recieve net_info packet,send request again!");
continue;
break;
default:
if(FD_ISSET(skt,&fds))//测试skt是否可读,即网络上是否有数据
{
// printf("\n###########this is ICT 1.1##########################");
n = Recvfrom(skt, recvline, MAXLINE, 0,NULL,&len);
printf("\n###########this is after recv####%u######################",n);
break;//如果读到数据,退出while循环
}
}
}
0 0
- udp利用select实现超时重传
- udp利用select实现超时重传
- UDP实现简单的超时重传
- UDP 超时重传机制
- udp套接字及应用层udp超时重传
- 基于select模型的udp客户端实现超时机制
- 在应用层让UDP实现简单的超时重传!
- 《UNIX网络编程 卷1》 笔记: UDP应用实现超时重传机制
- TCP UDP select超时总结
- TCP/UDP select超时处理
- select 实现超时连接
- select实现connect超时连接
- 关于sigsetjmp,siglongjmp注意点 (UDP超时重传应用)
- libjingle源码解析(6)-【PseudoTcp】建立UDP之上的TCP(4):超时与重传
- libjingle源码解析(6)-【PseudoTcp】建立UDP之上的TCP(4):超时与重传
- TCP 超时重传
- tcp超时重传
- TCP超时重传
- struts2的使用
- IOS面试题--003
- webservice
- 重载流提取运算符
- 各种视频的参数比较总结表
- udp利用select实现超时重传
- struts 提交表单保存数据后清空表单数据查询
- C#参数传递和属性
- CppCMS和Nginx协同工作
- IOS面试题--004
- java.util.Scanner应用详解
- MyEclipse An error has occurred. See error log for more details.报错的解决办法
- 说明性弹性域、键弹性域
- 配置管理工具使用(资料索引)