当前位置: 技术问答>linux和unix
问connect系统调用能否显式设置超时(Solaris平台)
来源: 互联网 发布时间:2014-12-22
本文导语: 当socket工作在阻塞模式时,如果目标地址存在问题,connect就会阻塞,能否通过函数或是系统调用显式设置这个超时时间,请各位指教。 | 可以!!!! 先设置: #define TIME_OUT 你需要的超时时间 再写一个超...
当socket工作在阻塞模式时,如果目标地址存在问题,connect就会阻塞,能否通过函数或是系统调用显式设置这个超时时间,请各位指教。
|
可以!!!!
先设置:
#define TIME_OUT 你需要的超时时间
再写一个超时函数如下:
void Timeout(int sig)
{
signal(sig,SIG_IGN);
longjmp(TimeoutEnv,1);
}
接着:
if (setjmp(TimeoutEnv) == 0)
{
signal(SIGALRM,Timeout);
alarm(5);
if(connect(...................)
先设置:
#define TIME_OUT 你需要的超时时间
再写一个超时函数如下:
void Timeout(int sig)
{
signal(sig,SIG_IGN);
longjmp(TimeoutEnv,1);
}
接着:
if (setjmp(TimeoutEnv) == 0)
{
signal(SIGALRM,Timeout);
alarm(5);
if(connect(...................)