原始套接字之PING(4)
2015-04-19 23:13
211 查看
ICMP响应接收:
/*接收ping目的主机的回复*/ static void *icmp_recv(void *argv) { /*轮询等待时间*/ struct timeval tv; tv.tv_usec = 200; tv.tv_sec = 0; fd_set readfd; /*当没有信号发出一直接收数据*/ while(alive) { int ret = 0; FD_ZERO(&readfd); FD_SET(rawsock, &readfd); ret = select(rawsock+1,&readfd, NULL, NULL, &tv); switch(ret) { case -1: /*错误发生*/ break; case 0: /*超时*/ break; default: { /*接收数据*/ int size = recv(rawsock, recv_buff,sizeof(recv_buff), 0); if(errno == EINTR) { perror("recvfrom error"); continue; } /*解包,并设置相关变量*/ ret = icmp_unpack(recv_buff, size); if(ret == -1) { continue; } } break; } } }
相关文章推荐
- ping的实现(原始套接字系列三)
- Linux网络编程之原始套接字-ping协议实现
- 使用原始套接字编程实现简单的ping程序
- 黑客之旅――原始套接字(Raw Socket)透析(3)--用Raw Socket实现Ping
- 用原始套接字编程实现linux中的 ping 命令 ************************
- ping 程序(vc6.0 原始套接字实现)
- Linux网络编程之原始套接字-ping协议实现
- 原始套接字透析之实现Ping
- Linux 原始套接字 ping的实现 (转)
- 用原始套接字编程实现linux中的 ping 命令
- 原始套接字透析之实现Ping
- 原始套接字之PING(7)
- 基于C语言与原始套接字实现Ping程序
- <网络编程培训之六> 使用原始套接字实现Ping
- 原始套接字--简易ping程序
- 原始套接字透析之实现Ping(转)
- 原始套接字之PING(8)
- 用原始套接字写Ping
- 原始套接字之PING(5)
- 原始套接字之PING(9)