BuddaAtWork
Grünschnabel
++++ Update ++++
Ich habe zum testen mal diesen Ansatz hier verfolgt:
http://www.tutorials.de/java/236645-objekte-im-netzwerk-senden-empfangen.html#post1234045
Klappt wunderbar, die Dateien werden korrekt gesendet, die empfangene Datei ist genauso groß, wie die gesendete.
Wenn ich das ganze aber für meine Zwecke anpasse und in meinem Programm verwende, klappt es wieder nicht...
Sooooo langsam kommt mir der Verdacht, dass es an der Umgebung liegt, in der das Senden/Empfangen stattfindet, d.h. der restliche Programmteil...
++++ Update ++++
Lokal läuft es nun, warum? ka...naja zumindest nicht genau, vll. läuft mein rechner grad einfach nur besser, denn von der VM zu mir klappts noch immer nicht...
Ich habe zum testen mal diesen Ansatz hier verfolgt:
http://www.tutorials.de/java/236645-objekte-im-netzwerk-senden-empfangen.html#post1234045
Klappt wunderbar, die Dateien werden korrekt gesendet, die empfangene Datei ist genauso groß, wie die gesendete.
Wenn ich das ganze aber für meine Zwecke anpasse und in meinem Programm verwende, klappt es wieder nicht...
Java:
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Sender {
public static void send(Socket socket, String filePath) {
File file = new File(filePath);
System.out.println("Fileobjekt erstellt.");
try {
DataOutputStream dos = new DataOutputStream(socket
.getOutputStream());
System.out.println("DataOutputStream erstellt.");
FileInputStream fis = new FileInputStream(file);
System.out.println("FileInputStream erstellt.");
byte[] buffer = new byte[1024];
int i = 0;
int fileSize = 0;
while ((i = fis.read(buffer)) != -1) {
dos.write(buffer, 0, i);
fileSize += i;
}
System.out.println("Senden abgeschlossen.");
System.out.println("Gesendete größe: " + fileSize);
dos.flush();
fis.close();
} catch (FileNotFoundException e1) {
System.out.println("Datei senden, error: " + e1.getMessage());
} catch (UnknownHostException e1) {
System.out.println("Datei senden, error: " + e1.getMessage());
} catch (IOException e1) {
System.out.println("Datei senden, error: " + e1.getMessage());
}
}
}
Java:
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.Socket;
public class Empfaenger extends Thread {
private Socket socket = null;
private int m_size = 0;
public Empfaenger(Socket _socket, int _size) {
super();
socket = _socket;
m_size = _size;
setPriority(Thread.MIN_PRIORITY);
}
public void run() {
super.run();
try {
DataInputStream is = new DataInputStream(socket.getInputStream());
System.out.println("DataInputStream erstellt");
File tmpFile = new File("C:\\Temp\\Test.zip");
System.out.println("Fileobjekt erstellt");
FileOutputStream fos = new FileOutputStream(tmpFile);
System.out.println("FileOutputStream erstellt");
byte[] buffer = new byte[1024];
int i = 0;
int fileSize = 0;
while (fileSize < m_size) {
i = is.read(buffer);
fos.write(buffer, 0, i);
fileSize += i;
}
System.out.println("Empfangen abgeschlossen.");
System.out.println("Empfangene größe: " + fileSize);
fos.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Datei empfangen, error: " + e.getMessage());
}
}
}
Sooooo langsam kommt mir der Verdacht, dass es an der Umgebung liegt, in der das Senden/Empfangen stattfindet, d.h. der restliche Programmteil...
++++ Update ++++
Lokal läuft es nun, warum? ka...naja zumindest nicht genau, vll. läuft mein rechner grad einfach nur besser, denn von der VM zu mir klappts noch immer nicht...
Zuletzt bearbeitet: