솔라리스에서 recv,send timeout 잡아줄려면...

hbsnow의 이미지

솔라리스에서 recv, send timeout를 잡아줄려면 어떻게 하면 될까요?

alarm, select 말고 다른 방법은 없을까요?

1. alarm(10)
if(errno == EINTR)
close(sock);
-> SIGALRM를 쓰레드가 받지 못하는군요. 프로세스가 받아버리네요

2. timeval.sec = 10;
if(select(, , , timeval) == 0)
close(sock);
-> send에 대한 처리가 가능한가요?

3. RECVTIMEO는 솔라리스에서 지원이 안되네요.
이게 되면 가장 좋은데...

방법이 있으면 말씀바랍니다.