ChatClient BeginnerFragen

babuschka

Top Contributor
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

Aktives Mitglied
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

Top Contributor
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

Aktives Mitglied
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.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben