ASP.NET / C# / Chat / TcpClient u. TcpListener

Hallo,

ich schreibe gerade mit ASP.NET und C# an einem Chat fürs Internet. Nun habe ich einen TcpClient clientseitig verwendet welcher sich an einen TcpListener „hängt“. Der TcpListener soll sozusagen das Broadcasting der Chatbeiträge garantieren.
Dieser Chat soll auch über verschiedene Räume verfügen. Nun brauche ich auf der Serverseite eine Art Verwaltung weil die Benutzer die Räume auch teilweise selbst anlegen können sollen. Ich muss also erkennen wann ein Thread der das Broadcasting für einen Raum übernimmt schon läuft und mich dann an diesen „dranhängen“, bzw. ihm mitteilen, dass die Menge seiner Clients sich erhöht hat.
Wie mache ich sowas am dümmsten?
Ich hatte mir vorgestellt, dass ich ein Struct definiere welches Infos zum Raum und den Thread selbst beinhaltet und diese Structs in einem dynamischen Array verwalte welches ich immer wieder durchsuchen lasse sobald eine Anfrage eines Nutzers auf Teilnahme eines Chats vorliegt. Doch mit dynmaischen Arrays kenne ich mich nur in Delphi aus.
Kann mir dazu vielleicht jemand was auf C#-Seite erzählen?
Schön wären Beispiele:
a) erweitern eines Arrays beliebigen Typs
b) feststellen wieviele Elemente im Array sind

Danke

Gruß
Thorsten

Hallo Thorsten!

Nichts einfacher als das, Du hast dafür letztlich 2 Möglichkeiten:

  1. Du nimmst einfach eine ArrayList , das ist ein dynamisches Array, das allerdings nicht streng typisiert ist und object -Einträge verwaltet.
  2. Du erstellst Die deine eigene ChatRoomCollection , die Du Dir z.B. von CollectionBase ableitest. Dabei kannst Du Dir dann die benötigten Methoden (Add(), …) so überschreiben, dass Deine Collection schon zur Compile-Zeit nicht mehr generische Objekte erwartet sondern Deine ChatRoom-Klasse.

Egal, wie Du’s machst, beide Alternativen haben ein Count Property, mit dem Du die Anzahl der Elemente bestimmen kannst.

Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]