请注意,Zanblog并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome

有限状态机的C++实现(2)-bayonet开源网络服务器框架

Web开发 12,209
接着上一篇文章: 有限状态机的C++实现(1)-epoll状态机,我们今天来介绍更复杂和深入的部分。 为什么会在标题中提到bayonet这个开源项目呢?笔者本人一直想要写一套架构优美、功能完善的异步server框架,也看过很多朋友、同事实现的版本,虽然功能上基本能满足需求,...
阅读全文 6

有限状态机的C++实现(2)-bayonet开源网络服务器框架

2-18 12,209

接着上一篇文章: 有限状态机的C++实现(1)-epoll状态机,我们今天来介绍更复杂和深入的部分。 为什么会在标题中提到bayonet这个开源项目呢?笔者本人一直想要...
阅读全文 6

有限状态机的C++实现(1)-epoll状态机

Web开发 17,867
之前公司的同事写了一个基于epoll的网络服务器,其中涉及到socket状态的转化(如等待接收,接收中,接收完成等),以及socket之间的转化(如验证完ip权限之后,验证完登录态),可见是一个多层次的状态机。 但是在原来的实现中却并没有使用状态模式,导致整个逻辑非常...
阅读全文 19

有限状态机的C++实现(1)-epoll状态机

1-20 17,867

之前公司的同事写了一个基于epoll的网络服务器,其中涉及到socket状态的转化(如等待接收,接收中,接收完成等),以及socket之间的转化(如验证完ip权限之后,...
阅读全文 19

select句柄数限制

Web开发 6,751
connect中使用了select模型,有如下地方需要注意: 我们提供的server api中有很多地方用到了select,特别是在等超时的时候, 例如: fd_set recv_fds; int iNum= 0; if (m_iSocket <0) return -1; FD_ZERO( &recv_fds ); FD_SET( m_iSocket, &recv_fds );...
阅读全文 0

select句柄数限制

10-26 6,751

connect中使用了select模型,有如下地方需要注意: 我们提供的server api中有很多地方用到了select,特别是在等超时的时候, 例如: fd_set recv_fds; int iN...
阅读全文 0

epoll为什么这么快

Web开发 6,287
epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO. 以一个生活中的例子来解释. 假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,...
阅读全文 3

epoll为什么这么快

10-26 6,287

epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO. 以一个生活中的...
阅读全文 3