現在、私はboost asioでネットワークプログラミングを始めようとしています。私はboost :: asio :: connectとの接続を確立できません。
私は簡単な接続を試みることに決めましたが、私はすでにそれに問題があります。まずは、同じマシン上で実行されているサーバーとクライアントの間の接続を確立したかっただけです。
これは私のサーバーのコードです:
:ポートは10112.に等しく、それをフォローアップしている間、私のio_serviceは、メンバ変数である
try
{
tcp::endpoint endpoint(tcp::v4(), port);
tcp::acceptor acceptor(m_io_service, endpoint);
while (1) {
tcp::socket socket(m_io_service);
acceptor.accept(socket);
std::cout << "Someone connected!";
}
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
注、ここに私のクライアントコードであります
try
{
tcp::resolver resolver(m_io_service);
tcp::resolver::query query(tcp::v4(), "10112");
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::socket socket(m_io_service);
boost::asio::connect(socket, endpoint_iterator);
std::cout << "Client found server.";
}
catch (std::exception& e)
{
std::cout << "Exception: " << e.what() << std::endl;
}
これは、私がこれまでいくつかのチュートリアルから得たものです。
ただし、これまでのところ接続できません。私の推測では、クエリがいくつかの間違った値を提供していると思います。なぜなら、両方の場合にサーバーが上下にサイズ1のイテレータを取得しているからです。
これはちょうど私の実際のサーバーに似ていないいくつかのデフォルト値で終わるように思えます。これは、私が推測するクエリデータにエラーが発生する可能性があります。
しかし、私はここからどのように乗り出すべきか分かりません。
私には助言がありますか?
私はrun()を呼び出そうとしましたが、何も変更されませんでした。オブジェクトを実行し続けることはどういう意味ですか? – Sossenbinder
作業オブジェクトの詳細については、こちらをご覧ください。 http://stackoverflow.com/a/17157360/6928230 –