А как принимать xml-документ , как понять , что целиком принят документ , что больше не будет продолжения передачи? Так как приняв часть, обрабатывается только принятая часть, а послав продолжение , то так как нет началА XML-документа , то продолжение как xml-документ не воспринимается?!
Возможно же, передача по частям xml-документа , f не обязательно целиком?!
поскольку для передачи я рекомендовал использовать QXmlStreamWriter, для чтения подразумевалось использовать QXmlStreamReader, поддерживающий инкрементальный парсинг. вот выдержка из документации, поясняющая модель использования:
QXmlStreamReader is an incremental parser. It can handle the case where the document can't be parsed all at once because it arrives in chunks (e.g. from multiple files, or over a network connection). When the reader runs out of data before the complete document has been parsed, it reports a PrematureEndOfDocumentError. When more data arrives, either because of a call to addData() or because more data is available through the network device(), the reader recovers from the PrematureEndOfDocumentError error and continues parsing the new data with the next call to readNext().
For example, if your application reads data from the network using a network access manager, you would issue a network request to the manager and receive a network reply in return. Since a QNetworkReply is a QIODevice, you connect its readyRead() signal to a custom slot, e.g. slotReadyRead() in the code snippet shown in the discussion for QNetworkAccessManager. In this slot, you read all available data with readAll() and pass it to the XML stream reader using addData(). Then you call your custom parsing function that reads the XML events from the reader.
связкой пользуюсь давно и в целом успешно. натыкался на какие-то мелкие грабли, но уже и не вспомню.