我正在编写一个函数来与我没有编写的测试服务器进行通信。我发送了一个命令,并且需要在执行任何其他操作之前立即捕获多行响应。当然,我不想阻止我的整个 UI,这不应该是一个问题,因为当我发送命令时响应只落后了几个名义上的毫秒。
话虽如此,这就是我想出的:
QByteArray MainWindow::ask(const QByteArray &cmd) //blocking function. Add to thread while in use?
{
this->consoleWindow->put_data_in_console(cmd);
this->socket->write(cmd + "\r\n");
QByteArray resBuffer;
socket->waitForReadyRead();
while(socket->bytesAvailable > 0)
{
resBuffer.append(socket->readAll());
}
return resBuffer;
}
但我只能捕捉到我的四行响应的第一行。
提前致谢!