Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2588 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] Comment savoir si un client et toujours connecté à un socket ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Comment savoir si un client et toujours connecté à un socket ?

n°93779
antsite
Je me souviens
Posté le 26-01-2002 à 20:09:29  profilanswer
 

Tout est dans le sujet ! J'ai essayé de faire getpeername ou getsockname sur la socket cliente mais quand le client est parti elles ne renvoient pas d'erreur !
merci !

mood
Publicité
Posté le 26-01-2002 à 20:09:29  profilanswer
 

n°93792
antsite
Je me souviens
Posté le 26-01-2002 à 21:08:15  profilanswer
 

Je crois que select() est la fonction appropriée
Voici mon code :
 
a = accept(s,NULL,NULL); //s = socket serveur
if(a != INVALID_SOCKET)
{
 FD_SET(a,&set);
 while(test){
        rval = select(0,&set,NULL,NULL,NULL);
 if(rval == 0 || rval == SOCKET_ERROR)
 {
  //Le client s'est barré
  //Mais ça marche pas !
                break;
 }
     }
}
 
A chaque fois qu'un client arrive, select renvoie SOCKET_ERROR ! pourquoi ?

n°93914
antsite
Je me souviens
Posté le 27-01-2002 à 18:19:42  profilanswer
 

up !
Je suis sur que quelqu'un peut m'aider sur l'emploi de select(); !

n°93924
antsite
Je me souviens
Posté le 27-01-2002 à 19:00:26  profilanswer
 

du nouveau, j'ai mis FD_ZERO, c'est déja mieux, mais...
 
a = accept(s,NULL,NULL); //s = socket serveur
if(a != INVALID_SOCKET)
{
 //boucle
 FD_ZERO(&set);
 FD_SET(a,&set);
 rval = select(0,0,0,&set,0); //ça bloque ici , ça va pas plus loin !
 if(rval == SOCKET_ERROR || FD_ISSET(a,&set))
 {
  //Le client s'est barré
  //Mais ça marche pas !
 }
}
 
Maintenant que j'ai rajouté FD_ZERO ça bloque à select, et même si je spécifie un temps en 5ème paramètre ! ça veut pas aller plus loin dans le code !

n°94118
antsite
Je me souviens
Posté le 28-01-2002 à 14:00:03  profilanswer
 

Pourquoi ça bloque :cry:  
Adiez moi à utiliser select() !

n°94234
antsite
Je me souviens
Posté le 28-01-2002 à 18:04:52  profilanswer
 

:bounce:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Comment savoir si un client et toujours connecté à un socket ?

 

Sujets relatifs
[VB] probleme de socketJe voudrais générer un email (chez le client)
appli client/serverclient serveur avec vba
Client Java avec securité SSLrécupérer une adresse IP client
[C-Linux] Savoir quel est le n° du bouton où on clique...[ASP] Uploader un fichier d'un client sur un serveur
[PHP ou JAVASCRIPT ?] petite question, pour savoir lequel utilise.....Parcourir un répertoire sur le client dans une page ASP
Plus de sujets relatifs à : [C++] Comment savoir si un client et toujours connecté à un socket ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR