0

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

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 回答