摘要
最近因为工作上的需求要利用到tcp,之前接触的比较多的是C语言的tcp通信,转到QT之后多多少少有些不适应,因为QT把TCP通信的功能封装好了。让我们一起看看TCP客户端加上线程是如何实现的。
线程
因为C语言的影响,我会首选线程来实现TCP客户端。因为GUI编程下不知道进程是否操作的好这是其一,
其二是因为线程与进程相比对系统的资源开销比较小,利于优化,减少界面的卡顿提高用户体验这是很重要
的一点。然后就是GUI下线程会循环执行,因此把客户端的连接功能扔给线程去做再合适不过了。这样次客
户端就能主动的连接服务器端,就算连接失败也能继续重连。
我使用的是QT5版本,所以也只讨论QT5,看过网上各位大牛的总结后我才领悟到,QT下的线程是如何创建的。
首先你得在.pro工程文件里
QT += network
//然后再
#include <QTcpSocket>
#include <QtNetwork>
#include <QThread>
两种方法:
m_Thread = new QThread(); //创建一个线程
m_SMU = new SMUThread(); //你自己写的一个类
m_SMU->moveToThread(m_Thread); //把m_SMU的类扔到线程里,让它去跑
m_Thread->start(); //线程开始