找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3444|回复: 1

请教一个关于ACE_Asynch_Write_Stream的问题

[复制链接]
发表于 2013-6-3 20:25:30 | 显示全部楼层 |阅读模式
用proactor+异步读写做一个网络层的接口,当write很多的时候会发生no buffer space avalibale的错误。
在ACE_Asynch_Write_Stream::write()函数这里就会返回-1,错误表明没有足够的空间~~

对于这种问题,有没有好的处理方法?比如是我使用的有问题,还是确实需要自己初始化一个ACE_Message_Queue来保证当写入失败的时候有一个缓冲队列可以尝试重新写入?

我的想法是用一个ACE_Task开一个线程来接受要写入的数据,该线程会调用service handler继承者暴露出来类似send_data这样的接口,当写入失败的时候就ungetq好了~

请问有什么好的机制来尽量保证数据发送的性能和稳定性么?谢谢
发表于 2013-6-4 12:02:55 | 显示全部楼层
如你所说,把数据先缓冲到队列,再挨个发送即可。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-29 11:40 , Processed in 0.011789 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表