Serversocket :D

Signaler
Messages postés
27
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
3 juillet 2003
-
Messages postés
4
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
15 juillet 2009
-
Bjour
Question toute conne mais pourtant assez difficile a traiter :

J'ai un serversocket. Trois clientsocket y sont connectés. L'un d'eux se déconnecte, comment je peux savoir lequel est ce ?

3 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Si les trois ClientsSockets sont sur des postes différents, ils doivent avoir des adresses différentes. Tu peux récupérer l'adresse qui se déconnect facilement avec le TServerSocket.OnClientDisconnect :
procedure TFenPrincServeur.ServeurClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(Socket.RemoteAddress);
end;

Par contre si il y a plusieurs connections avec la même adresse il faut aussi comparer le Socket.SocketHandle :
procedure TFenPrincServeur.ServeurClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(Socket.RemoteAddress+' '+IntToStr(Socket.SocketHandle));
end;

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
113
Date d'inscription
vendredi 16 août 2002
Statut
Modérateur
Dernière intervention
15 mai 2005

Il y a une autre solution (que j'emploi) si tu fais un chat à plus grande échelle, tu crées une classe (avec login, DNS, sexe, age, etc...) et tu la stockes ds socket.data :) Dc a la deco, tu peux acceder à toute les infos du client déconnecté !!
@ toi de voir

voici mon exemple de classe (celle que j'emploi):

TVisioClient = class(TObject)
Dns,
Login,
Password,
Privilege : String;

Etat : String[100];
Lieu : String[50];

Salons : TStringList;

Age,
Sexe : Integer;
LastMsg : TDateTime;
End;

Visitez http://www.visiomaster.net :)
Messages postés
4
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
15 juillet 2009

peut tu expliquer comment marcher SocketHandle et RemoteAddress ? stp ?

Par ex si le serveur socket fait RemoteAddress il recevoit l'ip du client a l'autre bout? c ca?

Et Handle il sert a koi?

( si tu pouvé me contactez sur bclass007@hotmail.com joré kelkes questions te poser ce serait sympa ;) )