原始套接字之PING(9)

在main函数中有信号的注册:

/*截取信号SIGINT,将icmp_sigint挂接上*/

signal(SIGINT, icmp_sigint);

/*终端信号处理函数SIGINT*/
static void icmp_sigint(int signo)
{
	
	alive = 0;							/*告诉接收和发送线程结束程序*/	
	gettimeofday(&tv_end, NULL);		/*读取程序结束时间*/	
	tv_interval = icmp_tvsub(tv_end, tv_begin);  /*计算一下总共所用时间*/
	
	return;
}

main函数中最终关闭原始套接字并且显示统计结果

/*清理并打印统计结果*/
close(rawsock);
icmp_statistics();

/*打印全部ICMP发送接收统计结果*/
static void icmp_statistics(void)
{       
	long time = (tv_interval.tv_sec * 1000 )+ (tv_interval.tv_usec/1000);
	printf("--- %s ping statistics ---\n",dest_str);	/*目的IP地址*/
	printf("%d packets transmitted, %d received, %d%% packet loss, time %ldms\n",
		packet_send,									/*发送*/
		packet_recv,  									/*接收*/
		(packet_send-packet_recv)*100/packet_send, 	/*丢失百分比*/
		time); 											/*时间*/
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的幸运儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值