voici un bout de code de mon serveur pour héberger un client et recevoir des données. Seulement je voudrais quitter la fonction quand le client se déconnecte, et pour cela j'utilise la fonction select() mais je n'arrive pas à savoir si le client est toujours la ou pas !
void host_client(void*)
{
SOCKET a;
FD_SET set;
int r,rval;
char datarcv[255];
a = accept(s,NULL,NULL);
if(a != INVALID_SOCKET)
{
FD_ZERO(&set);
FD_SET(a,&set);
do
{
rval = select(0,&set,0,0,0);
if(rval == SOCKET_ERROR || !FD_ISSET(a,&set)) //marche pas !
break; //ICI
r = recv(a,datarcv,sizeof(datarcv),0);
if(r != SOCKET_ERROR && r != 0)
//traitement des données reçues
Sleep(100);
}
while(1);
//le client s'est déconnecté
FD_ZERO(&set);
closesocket(a);
}
}
qu'est-ce qui ne va pas avec mon select() ? merci
ANT