GrabBag/VrNets/tcpServer/Inc/IVrTcpServer.h

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