【发布时间】:2018-02-15 11:12:14
【问题描述】:
我有一段 ping 服务器的代码:
int main(){
if ( system( "ping 111.222.333.44") == 0 )
printf("success");
return 0;
}
代码打印如下:
PING 111.222.333.44 (111.222.333.44) 56(84) bytes of data.
64 bytes from 111.222.333.44: icmp_seq=1 ttl=63 time=0.565 ms
64 bytes from 111.222.333.44: icmp_seq=2 ttl=63 time=0.874 ms
.
.
等等。由于从未打印过success,因此我假设system( "ping 111.222.333.44") 以某种方式进入了无限循环。当我点击Ctrl+C 时,将打印统计信息(min/avg/max/mdev 等)并且程序终止。有没有办法避免这种无限循环?
另外,发送到服务器的字节数是 56 还是 84?还是64?我们可以手动指定这个值吗?如果我要计算过程中的速度,我会做56 bytes / 0.565ms = 99.1 KB/s吗?提前致谢。
【问题讨论】:
-
ping 将继续运行,无需配置 - 使用
-c NUM标志,其中num是要发送的数据包数
标签: c networking ping