# Problem bei bidirektionaler Nutzung eines Socket



## musiKk (14. Jun 2008)

Hi,

ich wollte mich etwas mit Sockets beschaeftigen und hatte mir als "Aufgabe" ein Chat-System - genauer einen IRC-Client - ausgesucht. Mein im Moment noch generelles Verstaendnisproblem ist folgendes:

Der Standardfall, der von den Tutorials behandelt wird, ist, einen Socket zu oeffnen und daran zu lauschen, bis was kommt, dann eventuell zu antworten. Allerdings ist es beim gewoehnlichen Chat doch so, dass Lauschen und Schreiben komplett asynchron laufen. Wenn ich jedoch bereits am Socket lausche, kann ich nicht darauf schreiben. 

Ich verbinde mich also mit meinem Socket zum IRC-Server und lausche am Socket, ob jemand im Chat etwas schreibt. Allerdings moechte ich doch gleichzeitig in der Lage sein, etwas zu schreiben und das geht dann nicht.

Also sinngemaess etwa so:


```
// socket ist mein Socket zum Server
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String line = in.readLine();
// und nun wird blockiert, bis etwas kommt
```

Nun dachte ich mir, dass ich Senden und Lauschen mal in zwei verschiedene gleichzeitig laufende Threads packe, aber Pustekuchen, das funktionierte leider nicht. :/

Also entweder ich habe bei diesem speziellen Versuch etwas uebersehen, oder ich habe einen grundlegenden Denkfehler.
Waere nett, wenn jemand mich auf die richtige Spur bringen koennte.


----------



## SlaterB (14. Jun 2008)

tja, was soll man sagen, es geht und muss so gemacht werden und du machst irgendwas falsch,
mehr Info bietest du nicht 

falls du abgucken möchtest:
http://www.google.de/search?hl=de&q=java+chat+socket&btnG=Google-Suche&meta=

->
http://www.cn-java.com/download/data/book/socket_chat.pdf
http://www.tecchannel.de/webtechnik/entwicklung/402430/index7.html


----------



## musiKk (15. Jun 2008)

Ich habe nicht mehr Infos (in Form eines Quelltextes) geboten, weil ich diese "hier mein Quelltext, sucht mal Fehler"-Threads meist nicht so gut finde. Es ging mir mehr um generelle Denkfehler. Und nachdem du sagtest, dass das doch gehen muss, habe ich den Fehler wo anders gesucht, naemlich bei der Threadbehandlung... und natuerlich war dort auch der Fehler. Ergo voll am Thema vorbei.

Aber danke fuer die Antwort und die Links.


----------

