tm.tv_sec = timeout; tm.tv_usec = 0; setsockopt(*sock,SOL_SOCKET,SO_SNDTIMEO,(void *) &tm,sizeof(struct timeval)); setsockopt(*sock,SOL_SOCKET,SO_RCVTIMEO,(void *) &tm,sizeof(struct timeval));
select を使わないならこっちで。
SO_RCVTIMEO が受信タイムアウト。
SO_SNDTIMEO が送信タイムアウト。
connect には送信タイムアウトが効く。