美文网首页
有限时间完成connect

有限时间完成connect

作者: 0X7C00 | 来源:发表于2018-07-29 22:23 被阅读0次

阻塞方式

  1. alarm,判断返回值是否是EINPROGRESS
  2. select (timeout) 检查返回值是否为1
  3. select + alarm 检查返回值是否为1

非阻塞方式

背景知识:
当connect为非阻塞时,调用connect后错误码返回EINPROGRESS.
调用Select时,当connect连接完成时,其套接字是可写的,当连接遇到错误时,描述符既可读又可写,需要调用getsockopt获取套接字待处理的错误(用SO_ERROR套接字选项),如果连接成功建立,则返回0;如果连接错误,会得到一个对应的连接错误的errno值。

取代getsockopt的方法

  1. 调动getpeername代替getsockopt。如果getpeername以ENOTCONN错误返回,则建立连接失败
  2. 调用read(0)。如果建立连接失败,那么返回相应的错误值;如果建立连接成功则返回0.
  3. 再次调用connect。如果错误是EISCONN,那么套接字已连接。

注:
若阻塞状态下connect失败,则connect不可重复调用。
若在阻塞状态下被中断了,则只能调用Select,执行上面非阻塞的相关操作来判断套接字是否连接成功。

相关文章

  • 有限时间完成connect

    阻塞方式 alarm,判断返回值是否是EINPROGRESS select (timeout) 检查返回值是否为1...

  • 2-react与 redux 的链接

    步骤: 1. 下载 2、引入connect connect是一个高阶组件:首先需要传一些数据过去,接着在运行完成之...

  • 技术支持网站

    联系我们 (Connect US) 公司 (Company) : 北京新飞创新科技有限公司 地址 (Address...

  • 时间有限

    关于时间管理的书太多了,它们总是告诉人们如何不放过每分每秒,怎样充分利用点滴的时间来学习工作提高自己。许多...

  • 时间有限

    钱可以储存,而时间是不能,这一秒过去就再也没有了。所以,有限的时间应该用在对自己有意义的事情上,用在最值得的地方...

  • 时间有限

    时间有限,请让城市的锁链以自由的名义走开让悠扬的笛声,顺着心坎进来让我们一起,去听江南的山谷清泉让我们一起,去看塞...

  • 时间有限

    好不容易盼到星期本想着养另周六周日时间大展身手一番。 想要看一本小说,看一本书,再提炼一下业务,还要跑步。 晚上1...

  • 时间有限

    每天的任务都没有好好完成,才发现时间真的不够。每天上课要6个小时,每天做题打卡交作业还要1到2个小时,这样8个小时...

  • 时间有限

    认真做好时间投资,而不是随随便便就把它花出去。 ——剽悍一只猫 感悟: 年轻的时候觉得时间无极限,觉得青春永不会死...

  • 灯笼,完成,水平有限

    。。。。。。。。。

网友评论

      本文标题:有限时间完成connect

      本文链接:https://www.haomeiwen.com/subject/xifmpftx.html