2016-10-22 12 views
0

現在、私は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のイテレータを取得しているからです。

これはちょうど私の実際のサーバーに似ていないいくつかのデフォルト値で終わるように思えます。これは、私が推測するクエリデータにエラーが発生する可能性があります。

しかし、私はここからどのように乗り出すべきか分かりません。

私には助言がありますか?

答えて

0

あなたはio_serviceオブジェクトを開始しました:http://www.boost.org/doc/libs/1_42_0/doc/html/boost_asio/reference/io_service/run.html

をそして、あなたは実行し、それを維持するために、作業オブジェクトを指定したのですか?

+0

私はrun()を呼び出そうとしましたが、何も変更されませんでした。オブジェクトを実行し続けることはどういう意味ですか? – Sossenbinder

+0

作業オブジェクトの詳細については、こちらをご覧ください。 http://stackoverflow.com/a/17157360/6928230 –

関連する問題