有没有什么方法使gethostbyname和connect这些行为能够超时结束?该怎么处理

有没有什么方法使gethostbyname和connect这些行为能够超时结束?该怎么处理

有没有什么方法使gethostbyname和connect这些行为能够超时结束?
也就是说写一个函数如connect_with_timeout (…, float timout)使其连接服务器能够有超时功能。
有没有什么方法来实现这样的功能?


起个定时器,如果规定时间没完成就退出connect并返回


不好意思,还是有疑问,程序走到
if ((i=connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == 0) 
这一行,fd出错连不上了怎么办?前边并没有超时控制啊?

———————————————-

这种方式采取的就是把fd设置成非阻塞方式,connect只是发出连接指令,并不等待对方回应就退出.
超时控制由下边的select来控制,连接成功失败是由getsockopt来判断的

有没有什么方法使gethostbyname和connect这些行为能够超时结束?该怎么处理

相关文章:

你感兴趣的文章:

标签云: