# Socket, Ende Dateitransfer



## moccajoghurt (19. Okt 2011)

Hallo,

ich habe ein Programm, dass über ein Socket mit einem Server kommuniziert. Unter anderem soll der Server dem Clienten Daten senden. Wenn der Dateitransfer beendet ist, soll die Socketverbindung weiterhin bestehen.
Momentan funktioniert die Übertragung leider nicht, da der Empfänger der Datei in der Schleife hängt:

```
while ((numRead = inputStream.read()) > 0) {
				outputStream.write(buf, 0, numRead);
			}
```

Und ich vermute solange eine Verbindung zum Socket besteht wird der Input vom InputStreamReader niemals auf 0 oder -1 gesetzt.

Gibts ne Möglichkeit das Problem zu lösen, ohne die Dateien über einen neuen Socket zu versenden?

Gruß moccajoghurt


----------



## Gast2 (19. Okt 2011)

Entweder setzt du nen timeout beim Client, oder der Server schickt ne bestimmte Sequenz um dem Client mitzuteilen dass er fertig ist


----------



## SlaterB (19. Okt 2011)

oder schickt vorher die Anzahl Bytes, dann kann sich der Client bytegenau einrichten


----------



## nillehammer (19. Okt 2011)

Außerdem musst Du den outputstream flushen, damit der Inhalt evtl. vorhandener Puffer gesendet wird.


----------



## moccajoghurt (19. Okt 2011)

Danke für eure Antworten. Hab mich jetzt doch dazu entschlossen einen neuen Socket zu erstellen, weil es für mich einfacher umzusetzen ist und wahrscheinlich auch stabiler laufen wird.


----------

