Frage

Ich habe ein paar Fragen bekommt über Bilder über senden.

Wie kann ich verschiedene Arten von Dateien verarbeiten, JPEG, PNG, etc.

Wenn die Datei groß ist, ich ave Sequenznummern verwenden ... aber ich weiß nicht, wie recving zu stoppen, wenn ich die Anzahl der Sequenznummern nicht kennen.

Meine Kenntnisse Bilder / Dateien Übertragung ist neben keine. Ich habe noch nie so etwas programmiert. Hoffte einige Tipps und Tricks = zu bekommen)

Danke sehr.

ich auch QT verwenden, wenn das meine Situation hilft überhaupt.

War es hilfreich?

Lösung

Wenn Sie einen TCP-Socket verwenden, müssen Sie keine Sequenznummern, weil TCP stellt sicher bereits, dass die Daten in der gleichen Reihenfolge ankommen, wie sie senden, wo. Senden Sie einfach die Daten, und wenn Sie fertig sind schließen die Verbindung. Optional können Sie eine selbst definierte Art von Paket-Header verwenden, die zusätzliche Informationen gibt (zum Beispiel, wenn Sie mehrere Dateien über eine Verbindung übertragen werden sollen).

Andere Tipps

Für Bilder zumindest, vorausgesetzt, Sie QImage verwenden, können Sie eine QDataStream verwenden Ihre QImage zu einem QByteArray umzuwandeln, die dann in das QTcpSocket Objekt geschrieben werden können Schreib () verwenden. Es ist möglich, so ziemlich jeder von Qt-Datentypen in eine QByteArray mit dieser Methode zur Serialisierung.

Für allgemeine Dateien, die QIODevice (Basis für QFile, ua) bietet Lesefunktionen wie ReadAll (), die die gesamte Datei in eine QByteArray bereit gelesen wird für Sie zu senden.

Sie werden eine Reihe von Networking-Beispiele finden mit dem Qt-Distribution enthalten. Siehe Qt Assistant -> Inhalt -> Tutorials und Beispiele. -> Netzwerk für weitere Informationen

Bringen Sie sie wie jede andere binäre Daten. send(), recv(). Oder je nachdem, was Abstraktion Qt bietet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top