-> Я пишу программу с использованием QTcpSocket, QTcpServer. Нужно ли мне добавлять код (то есть процедуру подтверждения), чтобы гарантировать доставку пакетов?
Если это так, я не могу найти ничего подобного в сети, поэтому хотел бы увидеть несколько примеров, пожалуйста.
-> Или где-то в библиотеке QT они уже покрыты, так что мне ничего подобного не нужно?
Любая помощь будет оценена.
Спасибо.
EDIT:
Теперь я спрашиваю, как использовать заголовки с порциями QDataStream, которые я добавил ниже. Я хочу, чтобы у каждого куска были заголовки, сообщающие информацию. Так что я могу отслеживать, какие части написаны, а какие отсутствуют. Пожалуйста, посмотрите ниже.
///RECEIVER SIDE
QDataStream in(socket);
in.setVersion(QDataStream::Qt_4_0);
QByteArray next;
next=socket->readAll();
QFile output("c:\\some\\output.txt");
output.open(QIODevice::Append);
output.write(next);
output.close();
///SENDER SIDE
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_0);
QFile file(path);
if(file.exists()){
file.open(QIODevice::ReadOnly);
}
QByteArray data;
data=file.readAll();
block.append(data);
out << (quint64)0;
out.device()->seek(0);
if(!socket->waitForBytesWritten()){
qDebug()<<"writing";
socket->write(block);
socket->flush();
}
file.close();
qDebug()<<"data: size"<<file.size();
socket->disconnectFromHost();