Hi Leute,
Ich suche nun schon sehr lange nach dem Fehler, aber ich finde es einfach nicht.
hoffe ihr könnt mir helfen
Klasse für FileTransfer enthält diese Methoden
Code:
public static void sendFile(String filename, OutputStream out) {
DataOutputStream dataout = new DataOutputStream(out);
int i;
byte[] buffer = new byte[1024];
try {
InputStream in = new FileInputStream(filename);
while( (i = in.read(buffer)) > 0) {
System.out.println("transmitting @ remote");
dataout.write(buffer, 0, i);
}
System.out.println("transmission completed @ remote");
dataout.flush();
in.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void receiveFile(String filename, InputStream in) {
DataInputStream datain = new DataInputStream(in);
int i;
byte[] buffer = new byte[1024];
try {
OutputStream out = new FileOutputStream(filename);
while( (i = datain.read(buffer)) != -1) {
System.out.println("transmitting @ local");
System.out.println("i is: "+i);
System.out.println("buffer: "+buffer);
out.write(buffer, 0, i);
System.out.println("i is: "+i);
}
System.out.println("transmission completed @ local");
out.flush();
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
hier gibt es dann probleme
Code:
while( (i = datain.read(buffer)) != -1) {
System.out.println("transmitting @ local");
System.out.println("i is: "+i);
System.out.println("buffer: "+buffer);
out.write(buffer, 0, i);
System.out.println("i is: "+i);
}
System.out.println("transmission completed @ local");
der client kommt nur zum zweiten println("i is: "+i);
das transmission completed wir nicht mehr ausgegeben.
die Ausgabe sieht so aus
transmitting @ local
i is: 6
buffer: [B@bb6ab6
i is: 6
der server kommt bis zum transmission completed.
achja zum Senden verwende ich Inputstream vom client bzw. server
weiss einer von euch wieso es nicht funktioniert?