如果未读取输出,端点将抛出无效参数

时间:2013-05-27 19:53:58

标签: c++ boost boost-asio

我已编译this example并尝试使用PHP连接到服务器。连接时,它意味着将文本写回客户端。如果我使用PHP读取输出,服务器运行正常 - 如果我不读取输出,有时服务器打印remote_endpoint: Invalid argument然后停止。有没有解决此问题(如捕获错误)?我想用这个例子编写我自己的服务器,返回一些数据。如果有人连接到它但没有读取输出,我不希望它崩溃。我使用的是Mac OSX 10.8.3,启用了GCC 4.8和C ++ 11。

1 个答案:

答案 0 :(得分: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;
}