#ifndef TCPSERVER_SERVER_H #define TCPSERVER_SERVER_H #include #include #include "service.h" class TcpServer : public Service { Q_OBJECT struct Client { QTcpSocket* socket; QByteArray buffer; client_state_t state = STATE_IDLE; long long recievebytes = 0; }; std::vector clients; QTcpServer server; public: TcpServer(QObject* parent = nullptr); virtual bool launch(const QHostAddress &address = QHostAddress::Any, quint16 port = 0) override; virtual void sendJson(const QJsonObject& json) override; signals: void sigRequestSave(); private slots: void incomingConnection(); void socketError(QAbstractSocket::SocketError socketError); void socketDisconnect(); void socketReadyRead(); protected: virtual void processIncomeingJson(const QByteArray& jsonbytes) override; private: void processComand(const QByteArray& command, Client& client); }; #endif // TCPSERVER_SERVER_H