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

 


Dernière réponse
Sujet : [C++] Comment savoir si un client et toujours connecté à un socket ?
antsite :bounce:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antsite :bounce:
antsite Pourquoi ça bloque :cry:  
Adiez moi à utiliser select() !
antsite 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 !
antsite up !
Je suis sur que quelqu'un peut m'aider sur l'emploi de select(); !
antsite 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 ?
antsite 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 !

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)