튜닝 소켓 연결 통화 시간 초과
문제
Win32 환경에 소켓에서 타임 아웃을 "조정"하는 방법이 있습니까? connect()
전화? 구체적으로 시간 초과 길이를 늘리고 싶습니다. 사용중인 소켓은 차단이 없습니다. 감사!
다른 팁
SO_RCVTIMEO 및 SO_SNDTIMEO 소켓 옵션을 사용하여 모든 소켓 작업의 시간 초과를 설정하려고 시도 할 수 있습니다. 예시:
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");
Alarm ()을 시도 할 수도 있습니다. 견본:
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 */
아니요, 이것은 불가능합니다. 기본 연결 시간 초과는 줄어들 수 있지만 증가 할 수는 없습니다.
제휴하지 않습니다 StackOverflow