2011-03-25から1日間の記事一覧

Boost.Asio 非同期処理のタイムアウトを設定する

C++

タイムアウトには、async系メソッドと別にdeadline_timerを動かし、タイムアウトを設定します。 タイムアウトの前に非同期処理が完了した場合はdeadline_timer::cancel()を呼び、タイムアウト用のタイマーをキャンセルします。 そうすると、タイムアウトのハ…

Boost.Asio 自分のホスト名を取得

C++

#include <boost/asio.hpp> #include <iostream> namespace asio = boost::asio; int main() { const std::string host_name = asio::ip::host_name(); std::cout << "hostname: " << host_name << std::endl; } 結果は書きません・・・。</iostream></boost/asio.hpp>

Boost.Asioでsleep

C++

deadline_timer::waitで(同期)sleepになります。 #include <boost/asio.hpp> #include <iostream> namespace asio = boost::asio; int main() { asio::io_service io_service; asio::deadline_timer timer(io_service); std::cout << "wait" << std::endl; timer.expires_from_now(boos</iostream></boost/asio.hpp>…

Boost.Asio ゲームループで非同期操作を行う

C++

ゲームループと書いていますが、要はタイマーによる定期実行プログラムです。 io_service::run()の使いどころで嵌りました。async系関数を次々記述していき、最後にio_service::run()を使用することで、非同期処理が終わるまで待機することになるので、ゲー…