一,前言,
因为我想做的工具是上下位机通信的整体系统。当然我不准备用eth,但是eth用来做通信仿真还是比较便捷的。
二,需求
qt tcp通信+多线程,因为tcp通信会影响GUI界面显示,作用最好放入线程。
三,设计
- QT多线程用哪种?
答:网上搜索了下,原来我之前用的QT多线程说是古老的方法,QT4.8之后建议用moveToThread了。这个用起来确实感觉便捷写,只要自己的类移入即可,否则一定要放在自己的thread的run中,不方便。
四,效果
如下是没有加入多线程,仅TCP。多线程是另外一个在后台客户端直接每隔3秒尝试连接主机的思路,当然粘包及心跳保活功能我还没加入。仅做简单tcp验证。
image.png
五,小结
之前做过些TCP通信,都是linux的API,本次是第一次使用QT的network API。但是关于接收粘包和心跳处理的设计思路是linux下tcp应用开发是一样的。我暂时没必要再做一遍了,当需要用的时候再实现也来得及,哈哈追剧去咯
网友评论