Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288893
  • 博文数量: 41
  • 博客积分: 2015
  • 博客等级: 大尉
  • 技术积分: 493
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 11:06
文章分类

全部博文(41)

文章存档

2011年(1)

2009年(40)

我的朋友

分类: LINUX

2009-02-27 16:43:16

最近看了点boost,想用它来编写服务端,看了两天,也在网上看了其他同行的经验,就动手写了一个简单的连接,结果写完后才发现async_read根本接收不到数据。记得曾经在看书时第一次试写的时候好像能收到,然而这次想真正写一个最简单完善的连接时,它又不行了,在网上查了下,没有发现什么针对这个的比较好的看法。我也不知道是什么原因,但在我写的时候可以用async_read_some函数来代替这个,然后就可以接收了。
如果哪个高手知道原因,请告诉我一下,万分感谢!!
另外,我在网上看了一下asio的网络实例整的非常复杂,让初学者有些模不到头脑,我觉得我写的这一个小例子挺简单的,希望能给跟我同是新手的人一点帮助,等我稍稍整理下再传上来供大家点评。
阅读(12236) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-28 12:13:25

其实不填满也可以返回, 第三个参数可以是一个条件函数, 可以用来控制读取的.

疯狂善良2009-12-05 15:01:28

( ⊙ o ⊙ )是的,填不满就不会返回,如果用它的话得看自己的情况了,如果你有个数据头记录了数据的长度,要求必须读这么多数据的话,就可以用了

chinaunix网友2009-11-11 17:17:11

不知道你的 async_read 设多大的 buffer 给它? 它在填满这个空间前是不会返回结果的. async_read_some 则是只要有数据就返回结果.