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

  • 相关阅读:
    prase arraylist where in to ParamsQuery on sql server 2008 using TVB: tvpdemo.cs(where in 转sql 参数化查询)
    手动依赖性注入 NInject(1) (转载)
    单件(单态,Singleton)模式部分
    详解Javascript中的Url编码/解码
    学习Web应用漏洞最好的教程WebGoat(转载)
    百度网盘 邀请码
    colorbox去除close关闭按钮,附上colorbox的基本使用方法
    P3974 [TJOI2015]组合数学
    P1772 [ZJOI2006]物流运输
    P1434 [SHOI2002]滑雪
  • 原文地址:https://www.cnblogs.com/findumars/p/4973114.html
Copyright © 2011-2022 走看看