# ChatClient BeginnerFragen



## babuschka (22. Dez 2010)

Hallo zuammen

Ich möchte mir einen kleinen simplen ChatClient bauen. Nun habe ich aber noch ein paar Fragen:

- Gibt es einen DataInputReader für eine JTextArea, oder muss ich da mit ActionListener arbeiten?
- Wie kann ich den Server in einen Hintergrundprozess verschwinden lassen, der Verbindungen annimmt und diese an einen Thread weitergibt?
- Ist es korrekt, wenn ich mit BufferedReader/Writer und Input/OutputStreams für die Textübertragung arbeite oder gibt es da besser Methoden?

Vielen Dank für eure Unterstützung

Greez


----------



## tobi193 (22. Dez 2010)

zu 1.: Du kannst natürlich einen DocumentListener an das Textfeld hängen, macht aber eigentlich keinen Sinn. Normalerweise drückt man ja auf den "Senden" Button -> ActionListener

zu 2.: In dem du einfach kein Fenster erzeugst. 

zu 3.: Ja, das sollte dafür in Ordnung sein.


----------



## babuschka (22. Dez 2010)

Hi, erstmal Danke für deine Antworten. Leider sind immer noch ein paar Sachen offen...

zu1: Wegen dem ActionListener möchte ich auf einen Button verzichten und nur auf das Drücken der "Enter" Taste reagieren. Gibt es da Möglichkeiten, welche direkt auf "Enter" reagieren. Ansonsten schreibe ich einen Listener dafür, ist ja auch kein grosser Aufwand.

zu2: Ich bin mir nicht sicher ob ich einen Designfehler mache, wenn ich ServerSocket(Server) und Socket(Client) in einem Programm unterbringe? (glaube zwar nicht). Wenn ich nun auf Verbindungen warte, bleibt dieser in einer endless-loop hängen. Wie ist es möglich, dieses "lauschen" im Hintergrund durchzuführen, damit ich zu der Laufzeit andere Dinge dürchführen kann.


----------



## tobi193 (22. Dez 2010)

Mittels eines KeyListeners. Das ist aber im Grunde genauso zu implementieren wie ein entsprechender ActionListener.
Ein Serversocket und ein Socket in einem Programm macht kein Sinn. Dafür hat man das ja schließlich um zwischen zwei Programmen (zwei Rechnern) zu kommunizieren.

Du baust dir einen Thread der ständig auf eingehende Verbindungen lauscht. Wenn eine ankommt wird für diesen Socket ein neuer Thread erstellt und anschließend weitergelauscht. Dann blockiert sich nichts gegenseitig.


----------

