# Mehrere Dateien über einen Socket senden



## ReaX (11. Aug 2008)

Hi,

ich sitze schon länger an einem Projekt und hab hier ein Problem, dass ich nicht in den Griff bekomme.

Und zwar will ich einfach mehrere Dateien über einen einzigen Socket versenden. Will also nicht für jede Datei ein neuen Socket öffnen, da dass ja sehr langsam sein würde...
Eine einzelne Datei ist nicht das Problem, dass bekomme ich hin, aber ich weiß nicht wie ich mehrere versenden soll.

Mit google hab ich ein etwas älteren Thread bei tutorials.de gefunden - http://www.tutorials.de/forum/java/303254-mehrere-dateien-ueber-socket-senden.html - der das gleiche Problem hatte. 

Ich hab es, wie auch in diesem Thread beschrieben, versucht, in dem ich einfach immer das erste Byte des Buffers ( buffer[0] )mit 1 belege und wenn die Datei endet, einfach eine 0 in dem Buffer[0], sende, sodass der Client weiß, dass die Datei fertig ist und eine neue beginnt. Aber das hat irgendwie nicht geklappt..

Hat einer von euch eine Idee oder kann mir sagen, wie ich mehrere Dateien über einen Socket senden und empfangen kann..

Schon mal Danke im Vorraus


----------



## ReaX (11. Aug 2008)

Ups sorry^^ hab jetzt doch glatt vergessen zu sagen, dass ich diese Frage schon im tutorials.de Forum gestellt habe und dort auch mehr, zb Code Teile zu sehen sind... 

hier der post:
http://www.tutorials.de/forum/java/320436-mehrere-dateien-ueber-einen-socket-senden.html


----------



## tuxedo (11. Aug 2008)

Du solltest dir ein Protokoll überlegen.

Anbieten würde sich, vor dem Senden der Datei die Größe zu übertragen. Mit dem DataOutputStream kein problem.
Danach schickst du die bytes der Datei. Der Empfänger weiß dann wie groß die Datei ist die er gleich lesen muss. Danach kannst du die größe der nächsten Datei übertragen, gefolgt von der Datei selbst.

Ist jetzt nur ein ganz primitives Protokoll, aber funktionierts im Prinzip. Meine SIMON implementierung macht das genauso für Objekte, Strings, Arrays etc...

- Alex


----------

