epoll ET 模式的简单示例。
安装openssl库:
- centos: yum install -y openssl-devel
- ubuntu: apt-get install libssl-dev
client-server间采用短连接方式,一个消息一个应答,双方各自关闭连接。
- 功能:监听8777端口,进行网络消息处理
- 内部采用epoll的ET模式,实现网络连接的异步处理
- 两个线程:
线程1用于epoll_wait等待连接,并进行IO的读写操作
网络数据处理完成后,线程2进行消息的处理 - 消息格式:
[content-length/4B][content]
content:message -> AES加密 -> base64 encode - 日志采用syslog的方式
- 消息处理为单线程方式,所以内部主要采用静态buffer
- 超时处理采用简单的链表管理方式
##client简要说明:
- 功能:主要用于server的性能测试
##不足:
- 不支持长连接
- 处理的模型简单:一问一答方式
- 超时处理设计过于简单
- 没有实现内存池:对于恶意构造的请求(如恶意Length)缺乏防护