Client-Liste im Chat

  • Themenstarter Themenstarter Körby
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

Körby

Gast
Hi

Habe einen kleinen Chat geschrieben. Ein Server an den sich mehrere Clients anmelden können. Das Client-Programm hat eine GUI, in der wird die Eingabe gemacht und es wird die Ausgabe angezeigt.

Hab folgendes Problem:

Ich habe in der GUI noch eine JTextArea frei, in der ich gerne die Liste der angemeldeten Clients anzeigen würde. Wenn ich die angemeldeten User als Textnachricht übermittel, werden diese von den Clients jedoch als Nachricht aufgefasst und als solche ausgegeben.

Nun wüsste ich gerne, ob es eine Möglichkeit gibt, ein StringArray, in dem die Namen sind, nicht als String sondern anders zu übertragen.


Hier die "normale" Übertragung einer Nachricht vom Server zum Client.
Server:
Code:
	public void senden(String msg) throws IOException
	{
		bw.write(msg);
		bw.write("\n");
		bw.flush();
	}

Client:
Code:
private void empfangen() throws IOException
	{
		String msg = "";
		msg = br.readLine();
		System.out.println("Empfang: " + msg);
		gui.setAusgabe(msg);
	}

Gruß
Körby
 
Protokolle ist hier das Zauberwort,

sende "System-Info 345: " + das Array,
die Clients lesen "System-Info" und anhand der Nummer wissen sie was zu tun ist,

wenn du noch ausschließen willst, dass User im Chat genau das gleiche eintippen, musst du tricksen, arbeitete nicht mit "System-Info", sondern mit irgendwas komischen wie ~^~, oder gar nichtsichtbare Soderzeichen,
falls die User auch ^ eintippen, dann überträgst du jedes User-^ als ^^, so kann ein einzelnes ^ nur eine Systemmitteilung sein,

natürlich muss man auch das Ende von Systemmitteilungen besonders markieren und viele andere Sachen, keine sagt, dass das leicht ist 😉

----------

einfacher wirds, wenn du nicht nur die simple Socket-Text-Übertragung nimmst, sondern höhere Konzepte wie RMI,
da ist alles interne schon drin und versteckt, dafür machst du dich von einem System abhängig

-------

oder du nimmst vorhandene Textprotokolle, allein schon XML mit festdefinierten Tags wäre schonmal deutlich besser als alles selbstausgedachte,

übertrage
<message>
.........
</message>
für normalen Text

sowie
<system>
.........
</system>
für interne Infos
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben