+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(17421)

2019-09(36497)

2019-10(8496)

尝试连接套接字时,ECONNABORTED是什么意思?

发布于2019-10-07 19:27     阅读(611)     评论(0)     点赞(1)     收藏(4)


我在ubuntu机器上使用python 2.7。

客户端尝试连接到服务器。我得到了EINPROGRESS,它可以用于非阻塞套接字。

要检查连接是否成功,我做了{connect}的手册页建议的操作:

# EINPROGRESS The socket is nonblocking and the connection cannot be
# completed immediately.  It is possible to select(2) or poll(2) for
# completion by selecting the socket for writing.  After select(2)
# indicates writability, use getsockopt(2) to read the SO_ERROR option at
# level SOL_SOCKET to determine whether connect() completed successfully
# (SO_ERROR is zero) or unsuccessfully (SO_ERROR is one of the usual error
# codes listed here, explaining the reason for the failure)

当服务器脱机时,这给了我ECONNREFUSED。到现在为止还挺好。

连接失败时,我想再试几次。

问题:我第二次尝试连接同一套接字时,{connect}给我发送了ECONNABORTED。这个不在{connect}的手册页中。这是什么意思?


解决方案


ECONNABORTED 在Linux Kernel Source Socket Code的两个地方设置。

按照errno手册页和/include/asm-generic/errno.h

#define ECONNABORTED 103 /* Software caused connection abort */

一个accept4/net/socket.c中定义syscall的函数

相关源代码

1533         if (upeer_sockaddr) {
1534                 if (newsock->ops->getname(newsock, (struct sockaddr *)&address,
1535                                           &len, 2) < 0) {
1536                         err = -ECONNABORTED;
1537                         goto out_fd;
1538                 }
1539                 err = move_addr_to_user((struct sockaddr *)&address,
1540                                         len, upeer_sockaddr, upeer_addrlen);
1541                 if (err < 0)
1542                         goto out_fd;
1543         }

逻辑的相关说明如下。

如果定义了来自用户空间的对等套接字的地址,并且如果新套接字没有名称,则将错误状态设置为ECONNABORTED并转到标签out_fd

所述第二是在定义该符号的功能inet_stream_connect/net/ipv4/af_inet.c

相关源代码

645         /* Connection was closed by RST, timeout, ICMP error
646          * or another process disconnected us.
647          */
648         if (sk->sk_state == TCP_CLOSE)
649                 goto sock_error; 

662 sock_error:
663         err = sock_error(sk) ? : -ECONNABORTED;
664         sock->state = SS_UNCONNECTED;
665         if (sk->sk_prot->disconnect(sk, flags))
666                 sock->state = SS_DISCONNECTING;
667         goto out;

逻辑的相关说明如下。

转到sock_error标签的唯一代码inet_stream_connect是检查套接字是否被RST,超时,另一个进程或错误关闭了。

sock_error标签中,如果我们可以恢复套接字错误报告,请这样做,否则将错误状态更改为ECONNABORTED

Celada的评论一样,我也建议每次打开一个新的套接字。



所属网站分类: 技术文章 > python文章

作者:黑洞官方问答小能手

链接: http://www.pythonheidong.com/blog/article/133140/

来源:python黑洞网 www.pythonheidong.com

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

1 0

赞一赞 or 踩一踩

收藏该文
已收藏

评论内容:(最多支持255个字符)

相似文章

  HR,OA,CRM,DRP,ERP什么意思?电商行业的特点?电商行业模式?专业术语?

  在Python中,“SyntaxError:调用'print'时缺少括号”是什么意思?

  SQLAlchemy ORDER BY DESCENDING?

  pip install失败,出现“连接错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:598)”

  python 通过Sybase ASE ODBC Driver访问sybase数据库,无需配置DSN【自己整理的】

  docker 利用CMD或者ENTRYPOINT命令同时启动多个服务

  面试时,HR为什么问求职者期望薪资,而不直接说能给多少钱?

  图文详解 : 什么是版本控制?Eclipse配置SVN和IDEA配置GIT教程

  解决pyhton aiohttp ssl:None [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)

  【Text Transcriptor】训练CRNN时,关于ctc_loss的几点注意事项

优质资源排行榜

 python经典电子书大合集下载 下载次数 8108

 零基础java开发工程师视频教程全套,基础+进阶+项目实战(152G) 下载次数 7545

 零基础前端开发工程师视频教程全套,基础+进阶+项目实战(共120G) 下载次数 7439

 零基础大数据全套视频400G 下载次数 7002

 零基础php开发工程师视频教程全套,基础+进阶+项目实战(80G) 下载次数 6891

 零基础软件测试全套系统教程 下载次数 6502

 全套人工智能视频+pdf 下载次数 6436

 IOS全套视频教程 基础班+就业班 下载次数 4679

 编程小白的第一本python入门书(高清版)PDF下载 下载次数 3100

10  effective python编写高质量Python代码的59个有效方法 pdf下载 下载次数 3065

11  Python深度学习 pdf下载 下载次数 3044

12  使用python+pygame开发的小游戏《嗷大喵快跑》源码下载 下载次数 2998

13  python项目开发视频 下载次数 2997

14  python从入门到精通视频(全60集)python视频教程下载 下载次数 2994

15  黑马2017年java就业班全套视频教程 下载次数 2992

16  python实战项目 平铺图像板系统源码下载,适用于想要保存,标记和共享图像,视频和网页的用户 下载次数 2987

17  利用python实现程序内存监控脚本 下载次数 2986

18  树莓派Python编程指南 pdf下载 下载次数 2979

19  老男孩python自动化视频 下载次数 2979

20  老王python基础+进阶+项目视频教程 下载次数 2972

21  尚硅谷Go学科全套视频 下载次数 2972

22  某硅谷Python项目+AI课程+核心基础视频教程 下载次数 2967

23  Web前端实战精品课程 下载次数 2966

24  Python基础教程 pdf下载 下载次数 2966

25  tron python小游戏 下载次数 2962

26  [小甲鱼]零基础入门学习Python 下载次数 2959

27  老男孩python全栈开发15期 下载次数 2958

28  2017最新web前端开发完整视频教程附源码 下载次数 2948

29  最新全套完整JAVAWEB2018开发视频 下载次数 2926

30  Python算法教程_中文版 pdf下载 下载次数 2913

31  Spring boot实战视频6套下载 下载次数 2909

32  python全套视频十五期(116G) 下载次数 2901

33  Python项目实战 下载次数 2882

34  python全自动抢火车票教程-python视频教程下载 下载次数 2882

35  30个小时搞定Python网络爬虫 含源码 下载次数 2881

36  尚硅谷大数据之Hadoop视频 下载次数 2876

37  简明python教程 (A Byte of Python)pdf下载 下载次数 2873

38  Python A~B~C~ python视频教程下载 下载次数 2864

39  数据结构与算法视频(小甲鱼讲解-全) 下载次数 2863

40  web小程序表白天数倒计时源码下载 下载次数 2862

41  Python Cookbook第三版中文PDF下载高清完整扫描原版 下载次数 2862

42  python基础视频教程 下载次数 2862

43  Python高性能编程 pdf下载 下载次数 2862

44  go语言全套视频 下载次数 2853

45  利用Python进行数据分析 pdf下载 下载次数 2850

46  清华学霸尹成Python爬虫视频-ok 下载次数 2845

47  黑马前端36期最全视频和代码 下载次数 2841

48  2018最新全套web前端视频教程+源码下载 下载次数 2840

49  老男孩Python自动化开发12期 老男孩最强一期python高级运维开发课程 第二部分 70GB 下载次数 2832

50  流畅的Python PDF下载高清完整扫描原版 下载次数 2828