BuddaAtWork
Grünschnabel
Hallo Leute!
Ich bin dabei eine Datei über ein Socket von einem Rechner zu einem anderen zu senden.
Momentan teste ich noch nur lokal bei mir mittels "Localhost".
Dies geschieht bei mir folgendermaßen (Die größe der Datei sende ich vorab):
Senden:
Empfangen:
"in" ist hierbei ein BufferedInputStream vom Socket.
Dies funktioniert auch wunderbar wenn mein laptop nicht ausgelastet ist. Wenn ich allerdings den Vorgang starte, während ich beispielsweise SUPER PI laufen lasse, wird die Datei nie vollständig empfangen und der Empfänger bleibt in der while schleife hängen.
Hat jmd von euch einen Rat?
Gruß
BuddaAtWork
Ich bin dabei eine Datei über ein Socket von einem Rechner zu einem anderen zu senden.
Momentan teste ich noch nur lokal bei mir mittels "Localhost".
Dies geschieht bei mir folgendermaßen (Die größe der Datei sende ich vorab):
Senden:
Java:
byte[] buffer = new byte[1024];
InputStream inputStream = new FileInputStream(file);
OutputStream outputStream = m_socket.getOutputStream();
int len = 0;
while ((len = inputStream.read(buffer)) > 0) {
if (ServerControl.isCancelled())
break;
outputStream.write(buffer, 0, len);
}
Empfangen:
Java:
byte[] buffer = new byte[1024];
int len = 0;
int currentFileSize = 0;
do {
len = (Integer) in.read(buffer);
fileOut.write(buffer, 0, len);
currentFileSize += len;
System.out.println("received: " + currentFileSize + " fileSize: " + fileSize);
} while ((currentFileSize)< fileSize);
fileOut.close();
Dies funktioniert auch wunderbar wenn mein laptop nicht ausgelastet ist. Wenn ich allerdings den Vorgang starte, während ich beispielsweise SUPER PI laufen lasse, wird die Datei nie vollständig empfangen und der Empfänger bleibt in der while schleife hängen.
Hat jmd von euch einen Rat?
Gruß
BuddaAtWork
Zuletzt bearbeitet: