ngaut

asm/c/c++/......

常用链接

统计

积分与排名

others

something special

经典的c/c++

游戏

最新评论

当asio::async_read与socket的async_read_some的区别

今天用asio写一个简单的server时,
当连接成功时做如下工作
1        asio::async_read(socket_, asio::buffer(&m_packet, sizeof(m_packet)),
2          boost::bind(&tcp_connection::HandleReadCardKey, shared_from_this(),
3            asio::placeholders::error));
但HandleReadCardKey始终没有被回调,除非remote point断开连接

最后用下面的代码搞定:
1 socket_.async_read_some(asio::buffer(&m_packet, sizeof(m_packet)),
2           boost::bind(&tcp_connection::HandleReadCardKey, shared_from_this(),
3           asio::placeholders::error));
记下,免得以后忘记了

总结一下:
      asio::async_read通常用户读取指定长度的数据,读完或出错才返回。
      而socket的async_read_some读取到数据或出错就返回,不一定读完了整个包。   

posted on 2007-06-29 15:37 ngaut 阅读(1649) 评论(0)  编辑 收藏 引用 所属分类: others


专题:Android  iPad jQuery Chrome OS

博客园首页  IT新闻  知识库  学英语  C++程序员招聘
标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
网站导航: