Boost asio中有两点用的不爽:

1. asio中的所有对象都引用io_service

2. async_write还要自己保证内存在completed之前有效

 

有空要把这两点搞的更傻瓜一点,实际上在全异步模式下NET IO分配两个线程足矣,async搞一个队列,completed时候删掉,还可以通过writev优化写, 现在在做的一个redrabbit lib

就是在boost asio上封装的更傻瓜一点。

http://code.google.com/p/redrabbit/source/browse/#svn%2Ftrunk

如果再有空,想自己封装一下epoll, 不考虑移植性,很少的模板,比较简单的类关系,

看了一下asio 源码,其思路不是很复杂,但是为考虑移植性,使用了大量的模板和ifdef,可读性稍差,

我常常意识到,即使使用boost asio这样的proactor模式的io库,TCP编程仍然还是复杂,需要了解好多技术细节,

个人觉得ZeroMQ是个非常好的思路,http://www.zeromq.org/

每个项目花一两个月写tcp模块真是太蛋疼了,

要是能在巨人的肩膀上,不是更好。

 更多精彩文章 http://h2cloud.org

 

相关文章:

  • 2021-12-27
  • 2022-12-23
  • 2021-11-14
  • 2021-07-29
  • 2021-12-24
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-23
  • 2022-03-04
  • 2022-12-23
  • 2021-11-17
  • 2021-04-11
相关资源
相似解决方案