TServerSocket - anzahl der Verbindugen (Clients) ermitteln
-
Moin!
Ich bin gerade dabei ein Chatprogramm zu programmieren. Ich wollte es jetzt so erweitern das nicht nur 2 Leute miteinander chatten können sonder mehrere. Dabei muss ich aber die Anzahl der Connections ermitteln wie macht man das?Server sendet an Client:
ServerSocket1->Socket->Connections[i]->SendText(Edit1->Text);Um jetzt an mehrere Clients etwas zu schiken muss ich ja die Anzahl der Clients ermitteln um der Variable "i" den passenden Wert zu zuweisen.
Hab schon in der Hilfe geschaut bin aber leider nicht schlauer geworden.
Bin für jede Hilfe dankbar.
-
for (int i = 0;i < ServerSocket1->Socket->ActiveConnections;i++) { if(ServerSocket1->Socket->Connections[i]->Connected) ServerSocket1->Socket->Connections[i]->SendText("M:"+ username +": "+Edit1->Text); }
-
thx
genau das habe ich gebrauchtnoch ne kleine Frage:
Kann man bei TServerSocket über die Ereignisse ClientDisconnected und ClientError ermitteln welcher Client sich desconnected bzw. ein Fehler verursacht hat?
-
Jepp, das geht. Sieh dir hierzu mal die Eigenschaft "SocketHandle" in der Hilfe an. Das SocketHandle ist eindeutig so wie die IP.
-
Wenn du die IP brauchst dann hol sie dir über Socket->RemoteAddress.
Ich hab in meinen Chats immer das SocketHandle verwendet da sich ja mehrere Clients hinter nem Router (WAN IP) befinden können. Wenn du nen Beispiel brauchst wie man anhand dem Sockethandle ne IRC ähnliche Userliste verwaltet kann dann sag Bescheid
-
Vielen Dank ihr habt mir schon sehr weiter geholfen. Da ich später noch ne
Userliste integrien wollte bin ich für einen Beispielcode sehr dankbar.
Email ist schon losgeschikt.
-
Hier meine E-Mail Adresse
julian-gross at gmx.net
-
Ich schick dir jetzt mal ein paar Chat Projekte aus meinen Anfangszeiten zu und da kannste dir ja rauskramen was du brauchst. ComCom Go ist eine ICQ nachahmung fürs Intranet mit Filetransfer Funktion. Schreibs ruhig fertig

-
So, damit ist der Beitrag wohl beendet.
Habt vielen Dank für eure Hilfe ganz besonders an Zero01.
Da werd ich wohl heute nicht mehr vom PC weg kommen