- 博客(4)
- 收藏
- 关注
原创 异步IO网络服务器设计(四) 会话生存期管理
全异步操作中存在一个问题,当一个client连接被断开的时候(client断开连接、server主动断开client或通讯故障),因为是异步的,我们无法知道在IO队列中是否还有该client的投递未被出列。盲目的删除client,释放内存(不管是真的释放了还是放进了对象池或内存池
2011-10-17 16:04:32 1090
原创 异步IO网络服务器设计(三) 写操作
在proactor模式(以Windows平台的IOCP为代表,asio中是用reactor的epoll仿的proactor)中,因为发起投递无需关心IO的状态是否就绪,所以存在一种情况:上层投递了一个send操作,在事件分离器所在的线程(IO线程)还未将投递完成状态出列的情况下,
2011-10-16 15:05:25 390
原创 异步IO网络服务器设计(二) 读操作
针对一个连接,是同时投递N个读操作好,还是只投递一个读操作,待其出列了,再进行下一个读操作好? 网上针对这个问题也是众说纷纭,甚至恶语相加口舌相对的都是大有人在。本人无意引发口水战,只在此说说自己的理解。 一,针对一个连接同时投递N个读操作。 采用这种方式,据说比一次
2011-10-16 14:31:30 328
原创 异步IO网络服务器设计(一) IO模型
说到异步IO网络服务器,全国人民都知道:“Windows下用iocp,Linux下用epoll”。无数的高手写过文章来讲IOCP和epoll相关的文章。本人分别使用epoll和iocp开发过网络库,也使用过boost.asio,试归纳如下: epoll: 1.通过epoll
2011-10-16 13:47:21 809
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人