首页 > 编程语言 > 详细

网络与多线程的设计例子

时间:2015-07-16 18:13:07      阅读:277      评论:0      收藏:0      [点我收藏+]
        上一篇的《网络与多线程设计模式》讲的是一些设备上的纯理论的东西,本篇将介绍一个本人写的使用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进行交流。




网络与多线程的设计例子

原文:http://www.cnblogs.com/littleblackbox/p/4651518.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!