我编译了this example并尝试使用 PHP 连接到服务器。连接时,它意味着将文本写回客户端。如果我使用 PHP 读取输出,服务器运行良好 - 如果我不读取输出,服务器偶尔会打印 remote_endpoint: Invalid argument
然后停止。有解决办法吗(比如捕获错误)?我想用这个例子来编写我自己的返回一些数据的服务器。如果有人连接到它但没有读取输出,我不希望它崩溃。我使用 Mac OSX 10.8.3,启用了 GCC 4.8 和 C++11。
最佳答案
如果你想让这个服务器捕获异常并继续下去,只需将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;
}
关于c++ - 如果未读取输出端点抛出无效参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779725/