码迷,mamicode.com
首页 > 其他好文 > 详细

基于epoll的聊天室程序

时间:2015-11-17 23:32:12      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:

epoll相对于poll和select这两个多路复用的I/O模型更加的高效。epoll的函数很简单,麻烦的地方在于水平触发和边沿触发。

用张图来说明下
技术分享

ET(边沿)只是在状态反转时触发,比如从不可读到可读。而LT(水平)就是如果可读,就会一直触发。所以在使用ET的时候要做一些额外的处理,比如可读的,一直把缓冲区读完,进入不可读状态,下次来数据才会触发。

下面贴出代码,只是一个简单的练习的例子
socketheads.h

zepoll.h

zepoll.cpp

task.h

task.cpp

epoll_server.h

epoll_server.cpp

main.cpp

客户端用qt简单的写了一个
技术分享
客户端服务端代码:epoll_chatroom.zip

http://love.junzimu.com/archives/2660

基于epoll的聊天室程序

标签:

原文地址:http://www.cnblogs.com/findumars/p/4973114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!