2012-08-17 115 views
2

我想製作一個程序,列出網絡上所有設備的IP地址。 這其中的一個主要組件是能夠ping設備。 這個程序必須在Linux,Windows和Mac上運行,所以我選擇了Boost庫。C++ Boost.asio Ping

我設法找到該文檔在這個例子: http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/example/icmp/ping.cpp

我相當的C++使用OpenGL 3.1和明暗器時,但是當我運行這個程序要乒遍地(454+)經歷和理解它是扔我一個循環(沒有雙關語意),它似乎包含大量的速記,功能,我從來沒有見過等。

有沒有更簡單的方法來ping機器與升壓:asio? 或者有沒有一種方法可以讓這種方法運行4次並返回平均響應時間?

回答

3

在鏈接示例中,您必須更改handle_receive函數以包含計數器。當它被呼叫四次時,您告知io_server對象停止(爲此,您必須使其成爲全局對象,或在pinger類中存儲對它的引用),而不是調用start_receive

+0

感謝您的回覆。 你知道程序中的哪一部分正在請求另一個響應嗎?如果讓另一臺機器繼續響應,我不想殺死該服務。 – CoderWalker 2012-09-20 02:26:58

+0

@CoderWalker發送「ping」的部分?在「start_send」和「handle_timeout」的鏈接示例中。 – 2012-09-20 05:00:58