至此,C++/Qt网络通讯模块设计与实现已分析完毕,代码已应用于实际产品中。
C++/Qt网络通讯模块设计与实现(一)
该章节从模块的功能需求以及非功能需求进行分析,即网络通讯模块负责网络数据包的发送、接收以及对外提供功能调用以及接口回调,其不进行产品业务的实现,达到平台化复用的目的,给出了类图,如下所示::
符合先设计再开发的思想,各类的功能也有详细描述。
详见C++/Qt网络通讯模块设计与实现(一)
C++/Qt网络通讯模块设计与实现(二)
该章节从源码层面给大家讲解了网络通讯模块客户端的实现,包括继承关系、主动型的通讯模块客户端、被动型的通讯模块客户端、通讯接口抽象、发送缓冲区、接收缓冲区、线程运行时、Handler、依赖注入、连接主机、发送数据、接收处理等等。
详见C++/Qt网络通讯模块设计与实现(二)
C++/Qt网络通讯模块设计与实现(三)
该章节分析了引入SNetClientRunning类的原因,包括信号槽连接类型(Qt::ConnectionType),发送信号的线程,接收者所依附的线程等,得出引入SNetClientRunning类是为了引导到SNetClient线程里。
详见C++/Qt网络通讯模块设计与实现(三)
C++/Qt网络通讯模块设计与实现(四)
该章节分析了接受者所依附的线程,从Qt技术层面进行了深入分析以及用实际代码演示,包括Qt::ConnectionType、示例源码、结果论证等,得出如下结论::
•QThread是用来管理线程的,它所依附的线程和它管理的线程不是同一个东西
•QThread所依附的线程就是执行QThreadobjThread或QThread*pThread=newQThread()的线程
•QThread管理的线程,就是run启动的线程
详见C++/Qt网络通讯模块设计与实现(四)
C++/Qt网络通讯模块设计与实现(五)
该章节分析了接口的应用,从广度上让大家对面向接口编程(该编程思想很重要)进行掌握,非常有效地提高代码质量,包括INetClientHandler接口代码、网络已连接,有数据可读,网络断开行为处理、远程代理类(代理模式)实现接口,更高级的抽象。
详见C++/Qt网络通讯模块设计与实现(五)
C++/Qt网络通讯模块设计与实现(六)
该章节分析了网络通讯服务端的实现,其开发思想、原则与客户端的类似,即组合封装、线程运行时类,面向接口编程等等,并从SNetServer类、SNetServerRunning类、INetServerHandler等类进行了源码讲解。
详见C++/Qt网络通讯模块设计与实现(六)