[C#]Server anzeige der offenen Verbindungen

The_NinjA

Grünschnabel
Hiho

Ich hab ein kleines Server Programm geschriben und dazu einen Client das funktioniert wunderbar. Nun möchte ich den Server ein wenig erweitern. Der Server soll auf eingabe anzeigen welche Client alle zu ihm verbunden sind.

bsp:

Befehl: info
Verbundene Clients (Hostname, IP):
- PCa , 192.168.0.1
- PCb , 192.168.0.43
etc...

Leider weiss ich nicht wie ich an die Daten komme welche Clients verbunden sind.
Kennt jemand ein Hilfe dazu wie ich das realisieren könnte.

Grüsse The_NinjA
 

Norbert Eder

Erfahrenes Mitglied
Du wirst doch eine Collections der Verbindungen am Server mitführen, oder Session-Daten verwalten. Daraus kannst du diese Information extrahieren.
 

The_NinjA

Grünschnabel
Nein zum jetzigen Zeitpunkt ist das ganz nur ganz einfach das heisst.
Der Client braucht keine Erlaubnis um eine Verbindung zu erstellen. Der Client wird einfach gestartet, man gibt die Ip ein und schon steht die verbindung.
Der Server erstellt dann bei jeder Verbindung einen neuen Thread und sendet im Moment jede Sekunde Daten an alle Clients die verbunden sind.
Das ganze funktioniert ber TCP/IP
 

Norbert Eder

Erfahrenes Mitglied
Dann musst du eigentlich nur bei jedem Abspalten eines Threads einen Eintrag in eine Collection machen und wenn sich der Client ausloggt diesen Eintrag wieder löschen. Sprich, du baust dir eine simple Form einer Session zusammen. Ein einfaches Objekt, welches die Eigenschaften IP, ComputerName und vielleicht noch ein paar andere Eigenschaften besitzt. Dieses beispielsweise in eine Hashtable, damit du auch eine eindeutige Zuweisung auf beispielsweise den TcpChannel machen kannst und fertig ist die ganze Hexerei.