在工程中如果需要多个socket,切每个socket都要接收大量的数据,这时就需要考虑在线程中接收数据了,如果socket与服务端断开,需要进行重连。
具体代码如下:`
1、重写QTcpSocket,头文件:
#ifndef TCPSOCKET_H
#define TCPSOCKET_H
#include <QObject>
#include <QTcpSocket>
#include <QTimer>
class TcpSocket : public QTcpSocket
{
Q_OBJECT
public:
TcpSocket(const QString& ip, int port);
void connectHost(const QString& ip, int port);
void slot_timeout();
public slots:
void slot_connect();
void slot_disconnect();
void slot_readyRead();
void slot_startConnect();
signals:
void sig_startConnect(int);
private:
QString m_ip;
int m_port;
QStringList m_dataList;
};
#endif // TCPSOCKET_H
1.2、源文件
#include "TcpSocket.h"
#include <QThread>
#include <QDebug>
TcpSocket::TcpSocket(const QString &ip, int port) : m_ip(ip), m_port(port)