moxuyou 发表于 2013-6-3 20:25:30

请教一个关于ACE_Asynch_Write_Stream的问题

用proactor+异步读写做一个网络层的接口,当write很多的时候会发生no buffer space avalibale的错误。
在ACE_Asynch_Write_Stream::write()函数这里就会返回-1,错误表明没有足够的空间~~

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

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

请问有什么好的机制来尽量保证数据发送的性能和稳定性么?谢谢

winston 发表于 2013-6-4 12:02:55

如你所说,把数据先缓冲到队列,再挨个发送即可。
页: [1]
查看完整版本: 请教一个关于ACE_Asynch_Write_Stream的问题