当前位置: 技术问答>linux和unix
有没有什么方法使gethostbyname和connect这些行为能够超时结束?
来源: 互联网 发布时间:2016-02-09
本文导语: 也就是说写一个函数如connect_with_timeout (..., float timout)使其连接服务器能够有超时功能。 有没有什么方法来实现这样的功能? | 起个定时器,如果规定时间没完成就退出connect并返回 | ...
也就是说写一个函数如connect_with_timeout (..., float timout)使其连接服务器能够有超时功能。
有没有什么方法来实现这样的功能?
有没有什么方法来实现这样的功能?
|
起个定时器,如果规定时间没完成就退出connect并返回
|
不好意思,还是有疑问,程序走到
if ((i=connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == 0)
这一行,fd出错连不上了怎么办?前边并没有超时控制啊?
----------------------------------------------
这种方式采取的就是把fd设置成非阻塞方式,connect只是发出连接指令,并不等待对方回应就退出.
超时控制由下边的select来控制,连接成功失败是由getsockopt来判断的
if ((i=connect(fd, (struct sockaddr*)&addr, sizeof(addr))) == 0)
这一行,fd出错连不上了怎么办?前边并没有超时控制啊?
----------------------------------------------
这种方式采取的就是把fd设置成非阻塞方式,connect只是发出连接指令,并不等待对方回应就退出.
超时控制由下边的select来控制,连接成功失败是由getsockopt来判断的
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。