diff --git a/statistics.c b/statistics.c index 0782e24..b9837cb 100644 --- a/statistics.c +++ b/statistics.c @@ -27,15 +27,15 @@ void print_statistics(int signal_id) #endif /* OSTYPE_LINUX && !FORCE_LIBPCAP */ if (recv_pkt > 0){ - losspack=recv_pkt/sent_pkt; - lossrate = 100 - ((recv_pkt*100)/sent_pkt); + losspack=sent_pkt-recv_pkt; + lossrate = ( (float)(sent_pkt - recv_pkt) / sent_pkt ) * 100.0; }else{ losspack=sent_pkt<0?0:sent_pkt; lossrate=sent_pkt<0?0:100; } printf("\n--- %s 统计 ---\n", targetname); - printf("发送: %d|收到: %d|%d%% 丢包率|已丢弃 %d\n", sent_pkt, recv_pkt, abs(lossrate),losspack); + printf("发送: %d|收到: %d|%d%% 丢包率|已丢弃 %d\n", sent_pkt, recv_pkt, lossrate,losspack); if (out_of_sequence_pkt>0) printf("已收到 %d 个乱序数据包\n", out_of_sequence_pkt);