boost::asio

トップページ > 入出力 >

abstract

必要なヘッダ
<boost/asio.hpp>
出来ること
非同期・ネットワークI/O
リファレンス
en

sample

サンプルの動作確認バージョン [GCC4/1.39.0] [VC8/1.39.0]

#include <iostream>
#include <string>
#include <boost/asio.hpp>
using namespace std;
using namespace boost::asio;

int main()
{
	// www.boost.org の http サービスに接続
	ip::tcp::iostream s( "www.boost.org", "http" );

	// 送信
	s << "GET / HTTP/1.0\r\n";
	s << "Host: www.boost.org\r\n";
	s << "\r\n";
	s << flush;  // バッファに溜めずに確実にネットワーク送信

	// 受信
	string line;
	while( getline(s, line) )
		cout << line << endl;
}

出力例

HTTP/1.1 200 OK
Date: Wed, 02 Apr 2008 10:40:15 GMT
Server: Apache/2.0.52 (Red Hat)
X-Powered-By: PHP/5.1.6
...

etc

ASynchronous I/O (非同期入出力) の略で asio です。 オーディオ関連の ASIO とは別物です。

将来的にはファイルの非同期入出力なども同じ枠組みでサポートされる予定だそうですが、 現在のところは、要するに、ネットワーク通信のライブラリです。 (※1.36.0 で部分的にファイルの非同期処理にも対応されました。) 上記のサンプルではiostreamを使った同期通信しかしていませんが、 もちろん、ライブラリ名の通り非同期処理にも対応しています。

see also

presented by k.inaba (kiki .a.t. kmonos.net) under CC0