Einzelnen Beitrag anzeigen
Alt 16.06.2007, 23:44   #1
TimmyX
Jr. Member
 
Registriert seit: 27.12.2003
Beiträge: 56


Standard java server-client probleme bei Datenübertragung

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?
____________________________________
cYa

TimmyX
TimmyX ist offline   Mit Zitat antworten