サンプルの動作確認バージョン [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 ...
ASynchronous I/O (非同期入出力) の略で asio です。 オーディオ関連の ASIO とは別物です。
将来的にはファイルの非同期入出力なども同じ枠組みでサポートされる予定だそうですが、 現在のところは、要するに、ネットワーク通信のライブラリです。 (※1.36.0 で部分的にファイルの非同期処理にも対応されました。) 上記のサンプルではiostreamを使った同期通信しかしていませんが、 もちろん、ライブラリ名の通り非同期処理にも対応しています。