李sir_Blog

博客园 首页 联系 订阅 管理

2011年5月12日

摘要: 一般而言我们创建用于接收error的类型大多声明如下: boost::system::error_code error 我们用这个类型去接受在函数中产生的错误如socket.connect( endpoint, error);如果连接失败,错误类型会保存到error中,比如连接主机失败可能会返回这样的错误boost::asio::error::host_not_found;通过if (error)检测到error后,抛出异常throw boost::system::system_error(error);需要注意的是,我们的error被 转化成 system_error了显示错误很简单了,st 阅读全文
posted @ 2011-05-12 15:26 李sir 阅读(7530) 评论(1) 推荐(2)

摘要: char d1[128];size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));buffer 大小是自动管理的同样std::vector<char> d2(128);bytes_transferred = sock.receive(boost::asio::buffer(d2));还可以基于boost::arrayboost::array<char, 128> d3;bytes_transferred = sock.receive(boost::asio::buffer(d3)); buffe 阅读全文
posted @ 2011-05-12 15:20 李sir 阅读(2998) 评论(0) 推荐(0)

摘要: 大家都希望可以像操作STL容器一样的去操作数组,C++可没有提供这个东西,有时候你会选择使用vector来替代,不过这毕竟不是个好的办法,毕竟vector模拟动态数组比较稳妥,而用它去替代一个普通的数组,开销毕竟太大了。而恰好,boost::array就为你提供了这个功能。boost::array的定义如下(简化):详情参见相关文件Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->template<class T, std::size_t 阅读全文
posted @ 2011-05-12 15:07 李sir 阅读(8752) 评论(0) 推荐(0)