Schönen Guten Tag allerseits,
ich möchte ein Bild über Sockets übertragen (70 Kilobyte von PC an Android, aber das ist nicht relevant). Nun habe ich an vielen Stellen von Byte-Puffern gelesen und relativ umständlich Stück-für-Stück-Übertragungen.
Dann habe ich selber experimentiert und habe ein Programm zum Laufen gebracht, das
Nun die Frage(n):
Ist das eine gute Idee? Könnte das Probleme geben? Wie Datenverlust-geschützt ist die Übertragung per ObjectIOStreams?
Vielen Dank im Voraus allerseits!
ich möchte ein Bild über Sockets übertragen (70 Kilobyte von PC an Android, aber das ist nicht relevant). Nun habe ich an vielen Stellen von Byte-Puffern gelesen und relativ umständlich Stück-für-Stück-Übertragungen.
Dann habe ich selber experimentiert und habe ein Programm zum Laufen gebracht, das
- ein File als byte[] einliest,
- das byte[] per ObjectOutputStream über Sockets versendet,
- per ObjectInputStream auf der Client-Seite empfängt,
- per FileOutputStream wieder in eine Datei schreibt.
- Funktioniert prächtig!
Java:
//Einlesen
Path path = Paths.get("C://Users//Administrator//Desktop//Map.gif");
byte[] data = Files.readAllBytes(path);
//In den OutputStream schreiben
ObjectOutputStream tempOut = new ObjectOutputStream(tempSocket.getOutputStream());
tempOut.writeObject(new Datapackage("DATA", data));
//[...]
//Auf der Client-Seite empfangen
ObjectInputStream ois = new ObjectInputStream(tempSocket.getInputStream());
byte[] rawByteData = (byte[]) ois.readObject();
//und in eine Datei schreiben
File file = new File("C://Users//Administrator//Desktop//mapFromData.gif");
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
try{
fos.write(rawByteData);
fos.flush();
} finally {
fos.close();
}
Nun die Frage(n):
Ist das eine gute Idee? Könnte das Probleme geben? Wie Datenverlust-geschützt ist die Übertragung per ObjectIOStreams?
Vielen Dank im Voraus allerseits!