2010-06-02 7 views

답변

1

getsockopt(3) 맨 페이지 (SO_RCVTIMEO)부터 살펴 보겠습니다. 그러나 나는 당신의 질문에 그 이상이있을 것이라고 확신합니다.

1) ING connect() 전에, 비 - 블로킹으로 클라이언트 소켓을 설정

+0

그래, 내가 보았지만 SO_RCVTIMEO 및 SO_SENDTIMEO는 send(), recv() 함수 호출을위한 것입니까? connect()가 아닙니다. 그게 맞습니까? – michael

2

가장 좋은 휴대용 솔루션은 알려진 값에 의존 할 수 확인하기 위해 자신의 시간 제한을 사용하는 것입니다. ioctl()FIONBIO 플래그 또는 fcntl()O_NONBLOCK 플래그를 사용하십시오. Win32에서 ioctlsocket()FIONBIO 플래그를 사용하십시오.

2) connect() 원격 피어 : connect()이 성공하면 모두 연결됩니다.

3) 그러나 connect() 경우 반환 -1하고 자신의 타임 아웃으로 쓰기 위해 단지 select()) Win32에서 EINPROGRESS (WSAEWOULDBLOCK에 소켓 기술자를 errno을 설정합니다.

관련 문제