Y at-il un moyen dans un environnement Win32 pour "régler" le délai d'attente sur un appel socket connect()
? Plus précisément, j'aimerais augmenter la longueur du délai d'expiration. Les prises utilisées ne sont pas bloquantes. Merci!Tuning socket connect délai d'appel
2
A
Répondre
2
0
Vous pouvez essayer d'utiliser les options de socket SO_RCVTIMEO et SO_SNDTIMEO pour définir des délais d'attente pour toutes les opérations de socket. Exemple:
struct timeval timeout;
timeout.tv_sec = 10;
timeout.tv_usec = 0;
if (setsockopt (sockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout,
sizeof(timeout)) < 0)
error("setsockopt failed\n");
if (setsockopt (sockfd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,
sizeof(timeout)) < 0)
error("setsockopt failed\n");
Vous pouvez également essayer l'alarme(). Exemple:
signal(SIGALRM, connect_alarm); /* connect_alarm is you signal handler */
alarm(secs); /* secs is your timeout in seconds */
if (connect(fd, addr, addrlen) < 0)
{
if (errno == EINTR) /* timeout, do something below */
...
}
alarm(0); /* cancel the alarm */
+0
Les délais de réception et d'envoi n'ont rien à voir avec le délai de connexion. – EJP
0
Non, ce n'est pas possible. Le délai d'attente de connexion par défaut peut être réduit, mais pas augmenté.
Non, ce n'est pas possible. Le délai d'attente de connexion par défaut peut être réduit mais pas augmenté. – EJP