0

この例をコンパイルし、PHP を使用してサーバーに接続しようとしました。接続時に、テキストをクライアントに書き戻すためのものです。PHP を使用して出力を読み取ると、サーバーは正常に動作します。出力を読み取らないと、サーバーが印刷remote_endpoint: Invalid argumentされて停止することがあります。これに対する修正はありますか (エラーをキャッチするなど)? この例を使用して、データを返す独自のサーバーを作成したいと考えました。誰かが接続しているが出力を読んでいない場合にクラッシュさせたくありません。GCC 4.8 と C++11 を有効にした Mac OSX 10.8.3 を使用しています。

4

1 に答える 1

1

このサーバーで例外をキャッチして続行する場合は、次のように変更mainします。

int main()
{
  boost::asio::io_service io_service;
  tcp_server server(io_service);
  while(true)
    try
    {
      io_service.run();
      break; 
    }
    catch (std::exception& e)
    {
      std::cerr << e.what() << std::endl;
    }

  return 0;
}
于 2013-05-28T05:24:03.707 に答える