#ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include class TCPClient : public QObject { Q_OBJECT public: static TCPClient* getInstance(); static void sendToserver(QByteArray &data); void configAndrun(); void setCallBack(void (*callback)(QString &ip, quint16 port,QByteArray &data)); void setServer(QString IP, quint16 port); void setTimeOut(int timeout); private slots: void readSocket(); void connected(); void disconnected(); private: explicit TCPClient(QObject *parent = nullptr); ~TCPClient(); static void _sleep(int msec); static QTcpSocket socket; static TCPClient tcpclient_instance; int _timeout = 20; QString server_ip = "127.0.0.1"; quint16 server_port = 7890; bool has_found = false; void (*_callback) (QString &ip, quint16 port,QByteArray &data)=nullptr; signals: void TCPClientConnected(); void TCPClientDisconnected(); void recv_data(QByteArray data); }; #endif // TCPCLIENT_H