在C中ping服务器

时间:2018-02-15 11:12:15

标签: c networking ping

我有一段代码可以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吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

简而言之,ping可以通过多种不同方式进行配置。使用-c 4,您可以指定发送4个ping数据包,-s XX可以指定数据包大小。