connect timeout

send和recv的超时时间可以通过setsockopt()函数设置SO_SNDTIMEOSO_RCVTIMEO。

connect可以设置超时时间吗?或Retry次数等,如何设置。谢谢!

connect()本身没有超时设定,通常的做法是在connect()之前设个时钟,到时候用信号打断正在进行的操作。

//make sure you handle SIGALRM

alarm(90);   // 90 second timeout
connect(.....);
alarm(0);

XTang,不好意思多问一句,至少在源码里,比如说头文件有设置的参数吧。

网上查到的一些Linux的资料:
对阻塞的connect到底会多久超时,各种系统对此都没有一个总时间的限制,而是设置了重连的次数。大多数系统这个重连数可调节(linux可以通过/proc/sys/net/ipv4/tcp_syn_retries或sysctl来修改此值。