#ifndef MEASURESERVER_H #define MEASURESERVER_H #include #include #include #include class RequstDataProcesser; class MeasureServer : public QTcpServer { Q_OBJECT public: MeasureServer(QObject *parent = nullptr); bool Start(quint16 port = 9999); void Stop(); protected: void incomingConnection(qintptr socket_descriptor) override; }; class MeasureSession : public QThread { Q_OBJECT public: MeasureSession(int socket_descriptor, QObject *parent = nullptr); virtual ~MeasureSession(); void run() override; private slots: void onClientRequstData(); void onClientDisconnected(); void onSocketError(QAbstractSocket::SocketError error); private: int _socket_descriptor; RequstDataProcesser * _tcp_socket; QByteArray * _requst_buffer; qint32 _requst_data_len; }; #endif