Hallo leute,
ich schreibe gerade 2 kleine programme, die auch schon wirklich super funktionieren, bis auf eine kleine sache.
Eins der Programme (Der Sender) Schickt einen BufferedInputStream(FileInputstream(QUELLDATEI)) mit namen "input" Byte für byte in einen Socket.getOutputStream() mit namen "output, mit folgendem algorithmus:
Das zweite Programm (Der Empfänger) schickt einen BufferedInputStream(ServerSocket.accept().getInputStream) mit namen "input" byte für Byte in einen BufferedOutputStream(FileOutputStream(FILENAME)), mit folgendem Algorhitmus:
WEITERE INFOS:
- Wie man sieht werden übrigens die jeweiligen outputs ordentlich geflusht.
- Die Countervariable zählt beim Empfänger übrigens auch ein Byte zu viel, ich habe bis jetzt nicht herausfinden können woher das gesamte Problem kommt.
- Wie man sieht habe ich beim Empfänger den Wert "-1" als kriterium gesetzt, die schleife zu beenden, und diesen Wert vom Schreiben ausgesperrt - habe ich deswegen gemacht weil beim DateileseStream des Senders "-1" der Code für das Ende des Files ist, und das muss man ja nicht in die neue Datei mitschreiben.
- ÜBRIGENS (vielleicht interessant): Das angehängte Byte hat IMMER den Wert "255", bzw in HEX "FF".
Also, woran liegt das? Ich bin mir sicher irgendeinen dummen Fehler gemacht zu haben auf den ich selbst nur blind geworden bin.
Vielen Dank im Voraus und Viele Grüße,
David
ich schreibe gerade 2 kleine programme, die auch schon wirklich super funktionieren, bis auf eine kleine sache.
Eins der Programme (Der Sender) Schickt einen BufferedInputStream(FileInputstream(QUELLDATEI)) mit namen "input" Byte für byte in einen Socket.getOutputStream() mit namen "output, mit folgendem algorithmus:
Code:
int temp = 0;
while (temp != -1){
temp = input.read();
counter++;
output.write(temp);
}
output.flush();
Das zweite Programm (Der Empfänger) schickt einen BufferedInputStream(ServerSocket.accept().getInputStream) mit namen "input" byte für Byte in einen BufferedOutputStream(FileOutputStream(FILENAME)), mit folgendem Algorhitmus:
Code:
int temp = input.read();
while (temp != -1){
counter++;
output.write(temp);
temp = input.read();
}
output.flush();
WEITERE INFOS:
- Wie man sieht werden übrigens die jeweiligen outputs ordentlich geflusht.
- Die Countervariable zählt beim Empfänger übrigens auch ein Byte zu viel, ich habe bis jetzt nicht herausfinden können woher das gesamte Problem kommt.
- Wie man sieht habe ich beim Empfänger den Wert "-1" als kriterium gesetzt, die schleife zu beenden, und diesen Wert vom Schreiben ausgesperrt - habe ich deswegen gemacht weil beim DateileseStream des Senders "-1" der Code für das Ende des Files ist, und das muss man ja nicht in die neue Datei mitschreiben.
- ÜBRIGENS (vielleicht interessant): Das angehängte Byte hat IMMER den Wert "255", bzw in HEX "FF".
Also, woran liegt das? Ich bin mir sicher irgendeinen dummen Fehler gemacht zu haben auf den ich selbst nur blind geworden bin.
Vielen Dank im Voraus und Viele Grüße,
David