首页 > C/C++ > Boost asio的endpoint.address.to_string弹框报错

Boost asio的endpoint.address.to_string弹框报错

2010年8月9日 发表评论 阅读评论

最近遇到一个用户,启动软件就弹框报错,完全无法使用,然后一步一步调试跟踪,终于发现问题,讲出错代码定位在以下这行:

string remote_address = http_server_socket_->GetEndPoint().address().to_string();

经过仔细的研究,发现其实是to_string方法报错了,其实也很奇怪,全网那么多用户,偏偏就这个用户会报错,但是这又是很重要的代码,只能那么写。于是研究了一下to_string()方法,发现boost的to_sting()方法还有另外一个带error_code的版本。于是,试用了一下error_code的版本,果然不会报错。解决的代码如下:

boost::system::error_code ec;
string remote_address = http_server_socket_->GetEndPoint().address().to_string(ec);
 
if (!ec)
{
    // 成功,do something
}

因此,为了增强系统的健壮性,使用boost库的时候,尽量使用带error_code版本的函数。

分类: C/C++ 标签: , , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.