我是 QT 和 C++ 的新手,我正在尝试使用 QThreadpools 创建一个 QTcpserver,以便它可以处理多个客户端。多个客户端可以毫无问题地连接。但我正在尝试从安卓手机发送一张带有页脚“IMGPNG”的图像,表示图像数据的结束。现在发出readyRead信号时的问题我正在尝试读取所有可用数据,然后稍后执行一些字符串操作并重建图像。我不确定如何接收每个客户的完整图像,然后进行相应的处理。
void VireClients::readyRead()//read ready
{
int nsize = socket->bytesAvailable();//trying to check the available bytes
qDebug()<< "Bytes Available" << nsize;
while(socket->bytesAvailable() < nsize){
QByteArray data = socket->readAll();//how to receive all the data and then process it
}
/*!These lines call the threadpool instance and reimplement run*/
imageAnalysis = new VireImageAnalysis(); //creating a new instance of the QRunnable
imageAnalysis->setAutoDelete(true);
connect(imageAnalysis,SIGNAL(ImageAnalysisResult(int)),this,SLOT(TaskResult(int)),Qt::QueuedConnection);
QThreadPool::globalInstance()->start(imageAnalysis);
}
现在我不确定如何完全获取数据或将接收到的数据保存为图像格式。我想知道如何完全接收图像数据。请帮忙。