• 网络与多线程的设计例子


            上一篇的《网络与多线程设计模式》讲的是一些设备上的纯理论的东西,本篇将介绍一个本人写的使用EPoll+TcpServer+多线程的开源库,已在https://bitbucket.org/johnson_he/epolltcpserver中供开源下载。
            该库使用了Qt的工程方式进行封装(实在不想写configure),里面的log也使用了log4Qt的方式进行,如果不想使用Qtcreator的话,可以自行引用tcpserver文件夹里面的所有文件即可。
            使用Qtcreator的好处是,里面的demo是用Qt写的,当然Qt就是C++,应该不难看懂。
            该库的实质源码其实并不多,使用者只需要继承AbstractTcpHandler类来实现自己的服务功能,然后用该实例化的子类、监听端口号、线程数去初始化EpollTcpServer对象即可。
            AbstractTcpHandler类的每个接口函数的功能,可看该类头文件的注释。实例化自己的功能类时,需要注意的是,当你初始化EpollTcpServer对象时指定的线程数大于1时,该类会被多个线程同时调用,所以,设计该类时,需要保证里面的资源的线程安全。
            当初始化完EpollTcpServer对象后,调用其startServer()接口里,将会正式启动线程进行网络监听操作,并将监听到的Tcp连接放入epoll中做事件监听,当有事件到来时,调用你实例化的功能类进行数据的处理,如下图所示。

            欢迎通过QQ:85021824进行交流。




    资源优化配置,就是将时间花在珍惜你时间的人身上
  • 相关阅读:
    Weekly blog for week 1908
    Weekly blog for week 1907
    Weekly blog for week 1905&1906
    Weekly blog for week 1904
    Write Week 3 Blog beforehand
    Add Week 2 Blog
    First week of a new year
    Andriod-Log
    bat
    学习方法
  • 原文地址:https://www.cnblogs.com/littleblackbox/p/4651518.html
Copyright © 2020-2023  润新知