连接刚建立时,立即调用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中需要这个变量,比如重新发送缓冲中的数据时也会用到。