C++ Boost.asio Ping

标签 c++ networking boost boost-asio ping

我正在尝试编写一个程序来列出网络上设备的所有 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/

相关文章:

java - 在伦敦地铁上进行网络检测

c++ - spirit SA属性编号

c++ - 既然我们已经有了 move 语义,那么专门化 std::swap 了吗?

c++ - 将 Strncmp 与文件中的字符串一起使用

c++ - Qt/Qml : Custom widget -- cannot set "width" property as it is readonly

c++ - R^3(x,y,z)中快速随机访问和顺序访问的数据结构

networking - 在 Ubuntu 中,我如何确定哪个进程是网络 pig

c# - TCP套接字测试

c++ - 如何定义和使用 boost::function with "optional arguments"?

c++ - 类型检查 std::map 的键和/或 boost::any 类型的值?