# Wie werden Daten versendet? "Crashcode"



## Angel4585 (29. Mai 2007)

Hallo,

also ich habe zwei Anwendungen, einen Server und einen Client.

auf dem Server habe ich einen ServerSocket und erzeuge für jeden Client einen Thread mit einem Socket der über serversocket.accept(); erzeugt wird.

der Client besitzt lediglich einen Socket.

Das "Connecten" klappt. Also der Client meldet socket.IsConnected() ergibt true.

Mit welchen Funktionen sende ich jetzt Daten von Server zu Client und empfange die beim Client, bzw. andersrum?

Danke schonmal im vorraus.


PS: Könnt ihr dazuschreiben was in den Zeilen in etwa passiert, damit ich auch den Hintergrund verstehe?


----------



## Beni (29. Mai 2007)

Du benutzt "getInput/OutputStream" beim Socket, und liest/schreibt in die Streams :wink:


----------



## kleiner_held (29. Mai 2007)

Siehe auch da


----------



## Angel4585 (1. Jun 2007)

OK, hab das Prinzip so grob verstanden.

Hab jetzt aber folgendes Problem:


```
while(true){
    do{
       temp = in.readLine();
       feld.add(temp);
    }while(temp!=null);
    //Jetzt das empfangene verarbeiten
}
```


wenn jetzt die letzte zeile gesendet wurde holt er die noch ab, und bleibt dann wieder bei dem readLine() stehen.
kann ich irgendwas senden damit der da abbricht?


----------



## kleiner_held (1. Jun 2007)

Wenn dein Senden komplett ist, du also keine weiteren Daten senden willst, kannst du einfach auf Clientseite den SocketOutputStream zu machen.

Wenn du den OutputStream offen halten willst, weil du spaeter noch mehr senden willst, dann musst du dir ein Kommunikationsprotokoll zwischen Server und Client ausdenken. In dem ist dann festgelegt, woran der Server erkennen kann, dass eine Anfrage des Clients jetzt vollstaendig ist. 
Das kann zB.: eine Leerzeile ohne Daten sein, oder ein reserviertes ASCII Steuerzeichen usw. Natuerlich muss diese Markierung eindeutig sein und darf nicht im normalen Datenstrom vorkommen.
Deine Abbruchbedingung der while Schleife musst du dann an diese Markierung anpassen.


----------

