#ifndef IVRTCPCLIENT_H #define IVRTCPCLIENT_H #include #include #include 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