j'utilise builder 6 ent ,precisement le composant tserversocket ,j'accepte des connections dans onconnect ,je verifie le login et le pass avec receivetext et si tous baigne j'enregistre dans une bd ,l'ip (RemoteAddress) ,le handle (SocketHandle) pour que je puisse deconnecter ce client avec Disconnect(int handle) ,mais voila le probléme c que en apprenant que pour envoyer une trame a un client x je ne peux pas utiliser le handle de sa socket ,fo que j'utilise Socket->Connections[num de la connexion]->SendText("bla bla") ,je sais aussi que je peux savoir combien de client sont connectés par ActiveConnections ,alors voila le probléme avec cette methode (qui n'utilise pas le handle comme identifiant du client) :
1-le client x connecte ,ActiveConnections est à 1 ,je peux envoyer des données a ce client en utilisant Socket->Connections[0]->SendText("bla bla")
2-le clent y connecte ,ActiveConnections est à 2,je peux envoyer des données a ce client en utilisant Socket->Connections[1]->SendText("bla bla")
3-le clent z connecte ,ActiveConnections est à 3,je peux envoyer des données a ce client en utilisant Socket->Connections[2]->SendText("bla bla")
le probléme c que quand le client y deconnecte et que ActiveConnections devient 2 ,cette ligne utilisée pour envoyer à client z genere une erreure
Socket->Connections[2]->SendText("bla bla") ,en fait il fo mettre Connections[1] c ca mon probléme ,si c'etait avec le handle ca serais plus simple et efficace alors comme ca j'arrive pas a gerer mes clients
Partager