zoukankan      html  css  js  c++  java
  • Socket常见错误

    一、简介

    本文介绍 Socket 连接常见错误。

     

    二、常见错误

    1)ECONNABORTED

    描述:“software caused connection abort”,即“软件引起的连接中止”

    原因:当服务和客户进程在完成用于 TCP 连接的“三次握手”后,客户 TCP 发送了一个 RST (复位)

     

    2)ECONNRESET

    描述:“connection reset by peer”,即“对方复位连接”

    原因:发生在服务进程较客户进程提前终止。当服务进程终止时会向客户 TCP 发送 FIN 分节,客户 TCP 回应 ACK,服务 TCP 将转入 FIN_WAIT2 状态。此时如果客户进程没有处理该 FIN (如阻塞在其它调用上而没有关闭 Socket 时),则客户 TCP 将处于 CLOSE_WAIT 状态。当客户进程再次向 FIN_WAIT2 状态的服务 TCP 发送数据时,则服务 TCP 将立刻响应 RST

    测试:发送一个到未监听端口的连接请求

    telnet www.sina.com 20000

     

    3)ETIMEDOUT

    描述:“connect time out”,即“连接超时”

    原因:发生在服务器主机崩溃。此时客户 TCP 将在一定时间内(依具体实现)持续重发数据分节,试图从服务 TCP 获得一个 ACK 分节。当最终放弃尝试后(此时服务器未重新启动),内核将会向客户进程返回 ETIMEDOUT 错误

    测试:

    telnet www.baidu.com

     

    4)EPIPE

    描述:“broken pipe”,即“管道破裂”

    原因:发生在客户进程不理会(或未及时处理)Socket 错误,继续向服务 TCP 写入更多数据时,内核将向客户进程发送 SIGPIPE 信号,该信号默认会使进程终止

    测试:

     

    三、错误码定义

     

  • 相关阅读:
    辅助性的“比较操作符”
    辅助性的“比较操作符”
    浙江一乘客没赶上火车退票不成把票撕了 结果"悲剧"了
    美国超震撼短片-梦想
    在HTML文件中加入空格
    揭秘人造肉
    不能发布网站简讯
    KMPlayer
    文件四处盖章签字等
    冬天到了如何御寒
  • 原文地址:https://www.cnblogs.com/274914765qq/p/5693361.html
Copyright © 2011-2022 走看看