38 lines
1.0 KiB
C++
38 lines
1.0 KiB
C++
#ifndef IVRTCPSERVER_H
|
|
#define IVRTCPSERVER_H
|
|
|
|
#include <QObject>
|
|
#include <QHostAddress>
|
|
|
|
class IVrTcpServer : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit IVrTcpServer(QObject *parent = nullptr);
|
|
~IVrTcpServer() override;
|
|
|
|
// 服务器接口
|
|
virtual bool startServer(quint16 port) = 0;
|
|
virtual void stopServer() = 0;
|
|
virtual bool isListening() const = 0;
|
|
virtual quint16 serverPort() const = 0;
|
|
|
|
// 数据发送接口
|
|
virtual qint64 broadcastData(const QByteArray &data) = 0;
|
|
virtual qint64 broadcastData(const char *data, qint64 size) = 0;
|
|
|
|
signals:
|
|
// 服务器状态信号
|
|
void serverStarted();
|
|
void serverStopped();
|
|
void serverError(const QString &error);
|
|
|
|
// 客户端连接信号
|
|
void clientConnected(const QString &clientId);
|
|
void clientDisconnected(const QString &clientId);
|
|
void dataReceived(const QString &clientId, const QByteArray &data);
|
|
void dataSent(const QString &clientId, qint64 bytes);
|
|
};
|
|
|
|
#endif // IVRTCPSERVER_H
|