Socket Time-Out

malik7934 Messages postés 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 - 16 sept. 2004 à 09:39
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012 - 16 sept. 2004 à 10:28
Visiblement je vais jamais m'en sortir avec ces sockets... once again, one question:

Je veux que mon serveur arrête d'écouter après 5 secondes s'il n'a rien envoyé ou rien reçu. J'ai donc mis:
[code]
int optval = 5000;
if (!(
(setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO, (char*)&optval, sizeof(optval))) ||
(setsockopt(m_socket, SOL_SOCKET, SO_SNDTIMEO, (char*)&optval, sizeof(optval)))
))
{MessageBox(NULL,"Time Out!",NULL,NULL);return FALSE;}[code]
Mais visiblement ça s'utilise pas comme ça (ne sachant pas trop quoi faire, j'ai aussi mis sans le ! ... pour voir... et pleurer ;o))

Thanx d'avance, Malik7934

1 réponse

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
16 sept. 2004 à 10:28
Salut,

Pour ma part je fais :

struct linger zeroLinger;
int iTimeOut=1000;
zeroLinger.l_onoff = 1;
zeroLinger.l_linger = 0;

if(setsockopt(sockClients[dwIDOK][0], SOL_SOCKET, SO_LINGER, (const char *)&zeroLinger, sizeof(zeroLinger))!=0)
goto erreur;
if(setsockopt(sockClients[dwIDOK][0], SOL_SOCKET, SO_SNDTIMEO, (const char *)&iTimeOut, sizeof(iTimeOut))!=0) ....

@+
Arnotic,
Admin CS, MVP Visual C++
0
Rejoignez-nous