您的位置:首页 > 理论基础 > 计算机网络

网络与多线程的设计例子

2015-07-16 15:47 399 查看
上一篇的《网络与多线程设计模式》讲的是一些设备上的纯理论的东西,本篇将介绍一个本人写的使用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进行交流。

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: