boost网络编程(2)

来源:互联网 发布:蒙特卡罗算法matlab 编辑:程序博客网 时间:2024/06/06 06:34

      连接刚建立时,立即调用write_some写数据会不成功,对此我的解决办法是用async_write代替write_some函数,用async_write注册一个回调函数,检查write是否成功,不成功则再次调用async_write,这样循环知道写成功为止。

      还需要注意的地方就是无论调用async_read还是async_write传递给的buffer参数一定要是new出来的或者是全局的或者类成员变量,因为async_read时iocp在后台会给这个buffer写入数据,如果是临时变量,出了函数就被释放了。async_write是因为如果在aysnc_write中需要这个变量,比如重新发送缓冲中的数据时也会用到。

0 0
原创粉丝点击