我有一些類來干擾HTTP服務器。 這裏是meaningfull代碼部分:QNetworkAccessManager發送GET兩次
const QString someClass::BASEURL = QString("http://127.0.0.1:8000/?");
someClass::someClass():
manager(new QNetworkAccessManager(this))
{
}
QNetworkReply *someClass::run(QString request)
{
qDebug() << request;
QEventLoop loop;
QObject::connect(manager, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
QNetworkReply *res = manager->get(QNetworkRequest(QUrl(BASEURL + request)));
loop.exec();
return res;
}
當我打電話方法運行(),有時(未每次)的兩個相同的GET-請求 (I看着使用tcpdump)。 qDebug()執行1次。
我的代碼中是否有一些錯誤?我看不到任何可能的解釋。
更新: 經過一些tcpdump的ouptut研究。
第二次請求後,它發送包含RST標誌的數據包作爲FIN的答案。 但我仍然可以看到觸發問題的TCP流中沒有區別,但沒有。
F.e.這裏是wireshark的輸出。 Stream 8進展順利。 Stream 11與Stream 12重複。
我堅持這一點。也許這是服務器大小的一些協議錯誤,我不確定。或者這可能是QNetworkAccessManager中的一個錯誤。
你可以發佈tcpdump的輸出嗎? – sashoalm
這是相當大的,所以我上傳到[pastebin](http://pastebin.com/nPSnGSan) –