简述
- 创建 Thread 类 继承 QThread,实现用单独的线程接收 socket 数据。
- 当 socket 与主机断开时,自动触发 OnDisConnect() 函数,从而在 run() 中执行自动重连代码段。
- 想主动断开 socket 连接时,把 m_isThreaStopped 设置为 true 即可。
类的源码
Thread.h
#ifndef THREAD_H
#define THREAD_H
#include <QThread>
class QTcpSocket;
class QTextCodec;
class Thread : public QThread
{
Q_OBJECT
public:
Thread(QObject *parent);
~Thread();
void startThread(const QString& ip, int port);
void stopThreaad();
protected:
virtual void run();
Q_SIGNALS:
void sendMSg(QString msg);
protected slots:
void onConnect();
void onDisConnect();
void onReadMsg();
private:
QTcpSocket* m_TcpSocket;
bool m_isThreaStopped;
bool m_isOkConect;
QString m_QStrSocketIp;
int m_nSockPort;
QByteArray m_datagram;
};
#endif