我正在尝试编写一个程序来列出网络上设备的所有 IP 地址。 其主要组成部分之一是能够对设备执行 ping 操作。 这个程序必须在Linux、Windows和Mac上运行,所以我选择了Boost库。
我设法在文档中找到这个示例: http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/icmp/ping.cpp
在使用 OpenGL 3.1 和着色器时,我在 C++ 方面相当有经验,但是当我运行这个程序时,它一遍又一遍地执行 ping (454+) 并理解它让我陷入困境(没有双关语),它似乎包含一个大量的速记、我从未见过的函数等等。
是否有更简单的方法来使用 Boost:asio ping 机器? 或者有没有办法让这个方法只运行 4 次并返回平均响应时间?
最佳答案
在链接的示例中,您必须更改 handle_receive
函数以包含计数器。当它被调用四次后,您告诉 io_server 对象停止(为此,您必须将其设置为全局,或者在 pinger 类中存储对其的引用)并且不调用start_receive
。
关于C++ Boost.asio Ping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11998746/