У меня есть этот код в программе, которую я создаю, но у меня проблема: как я могу заставить программу ждать данные в http2, прежде чем вернуться в класс tcpserver? И как я могу получить данные в классе tcpserver?
Это похоже на контрольную точку, где мне нужно получить данные с сервера, а затем продолжить работу tcpserver и использовать эти данные там.
tcpserver.cpp
#include "tcpserver.h"
#include "protocol.h"
#include "http2.h"
QTextStream in(stdin);
tcpserver::tcpserver(QObject *parent) :
QObject(parent)
{
server = new QTcpServer(this);
[ ... Other Server Stuff ... ]
http2 *h = new http2(this);
}
Я попробовал это без удачи:
http2.cpp
#include "http2.h"
bool httpdonne = false;
QByteArray finaldata;
http2::http2(QObject *parent, QByteArray url, QByteArray data) :
QObject(parent)
{
url.append(data);
m_manager = new QNetworkAccessManager(this);
connect(m_manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(httpdown(QNetworkReply*)));
QNetworkRequest request;
request.setUrl(QUrl(url));
request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");
m_manager->get(request);
while ( httpdonne == false ) {
}
finaldata.append("HTTP: ");
qDebug() << finaldata;
}
QByteArray http2::httpdown(QNetworkReply* result)
{
QByteArray data = result->readAll();
finaldata = data;
httpdonne = true;
return data;
}
Большое спасибо! ;)