#include <QHostAddress>#include <QTcpSocket>class TcpClientThread : public QThread{ Q_OBJECTpublic: TcpClientThread(); void run();};
#include "tcpclientthread.h"TcpClientThread::TcpClientThread() : QThread(){}void TcpClientThread::run(){ QTcpSocket socket; socket.connectToHost(ip,port); if (socket.waitForConnected(3000)) { QByteArray outBlock; //здесь забираю пакет из очереди запросов socket.write(outBlock); if (socket.waitForReadyRead(3000)) { QByteArray inBlock = socket.readAll(); //выкидываю его во внешнюю очередь ответов socket.disconnectFromHost(); if (socket.state() != QAbstractSocket::UnconnectedState) { socket.waitForDisconnected(100); } } else { //обработка ситуации ошибки ожидания ответа socket.disconnectFromHost(); if (socket.state() != QAbstractSocket::UnconnectedState) { socket.waitForDisconnected(100); } } } else { //обработка ситуации ошибки ожидания подключения } socket.close();}