55 lines
1.4 KiB
C++
55 lines
1.4 KiB
C++
#ifndef IVRTCPCLIENT_H
|
|
#define IVRTCPCLIENT_H
|
|
|
|
#include <QObject>
|
|
#include <QByteArray>
|
|
#include <QHostAddress>
|
|
|
|
class IVrTcpClient : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit IVrTcpClient(QObject *parent = nullptr) : QObject(parent) {}
|
|
virtual ~IVrTcpClient() {}
|
|
|
|
// 连接服务器
|
|
virtual bool connectToServer(const QString &host, quint16 port) = 0;
|
|
virtual bool connectToServer(const QHostAddress &address, quint16 port) = 0;
|
|
|
|
// 断开连接
|
|
virtual void disconnectFromServer() = 0;
|
|
|
|
// 发送数据
|
|
virtual qint64 sendData(const QByteArray &data) = 0;
|
|
virtual qint64 sendData(const char *data, qint64 size) = 0;
|
|
|
|
// 获取连接状态
|
|
virtual bool isConnected() const = 0;
|
|
|
|
// 获取服务器地址和端口
|
|
virtual QHostAddress serverAddress() const = 0;
|
|
virtual quint16 serverPort() const = 0;
|
|
|
|
signals:
|
|
// 连接状态变化信号
|
|
void connected();
|
|
void disconnected();
|
|
void connectionError(const QString &errorString);
|
|
|
|
// 数据接收信号
|
|
void dataReceived(const QByteArray &data);
|
|
|
|
// 数据发送信号
|
|
void dataSent(qint64 bytesSent);
|
|
|
|
protected:
|
|
// 设置连接状态(供子类使用)
|
|
void setConnected(bool connected) { m_connected = connected; }
|
|
|
|
bool m_connected = false;
|
|
QHostAddress m_serverAddress;
|
|
quint16 m_serverPort = 0;
|
|
};
|
|
|
|
#endif // IVRTCPCLIENT_H
|