//mytcpsocket.h #ifndef MYTCPSOCKET_H #define MYTCPSOCKET_H #include #include #include #include #include #include typedef std::vector vect; class MyTcpSocket : public QObject { Q_OBJECT public: explicit MyTcpSocket(QObject *parent = 0); void doConnect(); std::vector Convert(QByteArray mtx, int size); std::vector Convert(QByteArray mtx); signals: public slots: void readyRead(); void disconnected(); private: QTcpSocket *socket; QTextStream os; QString data; //char data[]; qint64 size, toberead; QByteArray newdata; }; #endif // MYTCPSOCKET_H //main #include #include "mytcpsocket.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); MyTcpSocket s; s.doConnect(); return a.exec(); } //mytcpsocket.cpp #include "mytcpsocket.h" MyTcpSocket::MyTcpSocket(QObject *parent) : QObject(parent) { // Newdata = "noinfo"; } void MyTcpSocket::doConnect() { socket = new QTcpSocket(this); socket->connectToHost("localhost", 1234); if(socket->waitForConnected(5000)) { qDebug()<<"Connected!"; } else { qDebug()<<"Not connected!"; } os.setDevice(socket); //os.setAutoDetectUnicode(true); // os.setFieldAlignment(QTextStream::AlignRight); //socket->write("Hello server\r\n\r\n"); os<<"Hello, server!"; os.flush(); socket->waitForBytesWritten(1000); connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()), Qt::DirectConnection); connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected())); } void MyTcpSocket::readyRead() { double summ = 0; //os.setAutoDetectUnicode(true); //os<<"12345"; // socket->write("Hello server\r\n\r\n"); while(newdata!="Job is done!") { socket->waitForReadyRead(3000); //toberead = socket->bytesAvailable(); qDebug()<<"Reading: "<bytesAvailable();; // Newdata = socket->readAll(); //size = socket->readLine(data, toberead); //for(qint64 i=0; ireadAll()); //qDebug()<readAll(); //os>>newdata; if(newdata!="Job is done!") { double finalIndex = newdata.mid(newdata.indexOf("Info:")+6).toDouble(); qDebug()<<"Final index: "< mtx2double = Convert(mtx2,mtx1.size()); std::vector mtx1double = Convert(mtx1); //qDebug()<write("Counted!"); os.flush(); socket->waitForBytesWritten(1000); } else { os<<"Finished"; os.flush(); socket->waitForBytesWritten(1000); } } qDebug()<<"Job is done!"; socket->close(); } std::vector MyTcpSocket::Convert(QByteArray mtx, int size) { QByteArray newsign; int k = 0; std::vector newmtx; std::vector newvec; for(int i=0; i MyTcpSocket::Convert(QByteArray mtx) { QByteArray newsign; std::vector newvec; for(int i=0; ideleteLater(); exit(0); }