ich beschäftige mich seit ca 2 Wochen mit Java und bastel derzeit an einem kleinem Dateiverwaltungsprogramm rum.
Ein Server kann mehrere Clients verwalten etc.
Ich bin gerade dabei, die Dateikübertragung von Server zu Clien un dumgekehrt zu implementieren stehe jedoch vor einem Problem =/
Zur Zeit versuche ich die Sache beim Clienten folgendermasen zu realisieren:
File fil = new File(read.readLine()); InputStream iput = new FileInputStream(fil); byte buffa[] = new byte[(int)fil.length()]; out.writeUTF(fil.getName()); out.writeInt((int)fil.length()); iput.read(buffa); for ( int i =0; i < buffa.length; i++) { out.writeByte(buffa[i]); System.out.println(i); }
und der Server empfängt wie folgt:
int pos =0; String name = in.readUTF(); int size = in.readInt(); byte buffa[] = new byte[size]; while(in.available()>0) { buffa[pos] = in.readByte(); pos++; } OutputStream oput = new FileOutputStream(name); oput.write(buffa); oput.close();
Allerdings bricht die Übertragung kurz nach dem Anfang an immer anderen Stellen ab.
ALso immer bei einem anderen Byte welches übertragen wird.
Exception in thread "main" java.net.SocketException: Connection reset at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96) at java.net.SocketOutputStream.write(SocketOutputStream.java:115) at java.io.DataOutputStream.writeByte(DataOutputStream.java:136) at client.main.Main.main(Main.java:29)
bekomm ich als Fehlermeldung.
Ich habs mit Textdateien probiert sowie mit Videos/Musik.
Manchma bekomm er ein ganzes MB durchgeschickt manchmal aber auch nur ein paar Byte =/
Könnt ihr mir sagen woran das liegt?
Ich ahbe schon gesucht aber nichts wirkliches brauchbares gefunden für mein Problem
Wenn der Code nicht sehr schön is, bitte ich um Entschuldigung aber er wird so auch nicht 1:1 übernommen, ich wollte nur einmal testen wie sich die ganze Sache am besten implementieren lässt.
Ich hoffe ich seh den Wald vor lauter Bäumen nicht
greetz skelle