TServerSocket - Client-Identifikation
-
Hi
Ich hab jetzt jeden Client, der zu meinem Server connected eine ID zugewiesen und das SocketHandle passend zu dieser ID in einer TStringList gespeichert. Aber wie komm ich jetzt von dem SocketHandle zu x wenn Socket->Connections[x]->SendText(...); ???
oder gibt es eine andere Möglichkeit wieder auf diese Verbingung zuzugreifen und Strings zu senden?
-
speichere doch in der stringlist noch nen zeiger auf den zugehoerigen TCustomWinSocket. dann brauchst auch nicht mehr danach suchen
Meep Meep
-
Morgen!
Oder du suchst in ner schleife beim ServerSocket nach den entsprechenden Handels, etwa so:
for(int i = 0; i<ServerSocket1->ActiveConnections; i++) { if(ServerSocket1->Connections[i]->SocketHandle == /*Sockethandle aus Stringlist*/) { ServerSocket1->Connections[i]->SendText("bla"); } }
-
kleine frage noch, also wenn ich jetzt eine liste mit 10 clients habe, und habe die Handels in einer StringList, wenn dann ein client disconnected, und ich den Handel aus der StringList lösche, rutscht dann auch bei Connections die anderen Connections auf?
-
Ja
-
vielen dank....
dann mach ich das jetzt so:
clients ist ne StringList:
int __fastcall Server::GetListIdFromHandel(int handel) { for(int i=0; i < clients->Count; i++) { if(clients->Strings[i] == IntToStr(handel)) return i; } return -1; }