zoukankan      html  css  js  c++  java
  • 基于epoll的聊天室程序

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

    用张图来说明下
    20130713202857140

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

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

    zepoll.h

    zepoll.cpp

    task.h

    task.cpp

    epoll_server.h

    epoll_server.cpp

    main.cpp

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

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

  • 相关阅读:
    CSS概述
    CSS基础
    CSS定位与布局
    CSS动画,2D和3D模块
    第一硬汉左宗棠死了,晚清再无脊梁!
    南怀瑾老师:读书万卷,神交古人
    左宗棠读书修身8句,神交古人
    神交古人
    心忧天下,神交古人
    ECCV 2016 paper list
  • 原文地址:https://www.cnblogs.com/findumars/p/4973114.html
Copyright © 2011-2022 走看看