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 信号,该信号默认会使进程终止

测试:

 

三、错误码定义

http://epydoc.sourceforge.net/stdlib/errno-module.html

 

参考:http://lzy.iteye.com/blog/383884
时间: 2024-08-03 19:20:54

Socket常见错误的相关文章

MySQL主从多种架构部署及常见错误问题解析

本文的主要内容有mysql复制原理,mysql一主多从.双主架构的示例解读,以及mysql在主从复制架构实践中的常见错误问题和解决方法. 一 mysql复制原理 1 原理解读 mysql的复制(replication)是异步复制,即从一个mysql实列或端口(Master)复制到另一个mysql实列的或端口(slave):复制操作由3个进程完成,其中2个(SQL进程和I/O进程)在Slave上,另一个在Master上:要实现复制,必须打开Master端的二进制日志(log-bin),log-bi

XMPP 常见错误一:(<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>)

在XMPP开发中,使用XMPPStream进行连接服务器后,验证过程中,比较常见的一个错误是 <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>. 尤其作为初学者(笔者就是这样的),经常会因为这个问题弄得不着边际的凌乱.现在笔者将自己的遇到的问题定期整理,总结错误,希望对日后的使用有所参考,同时希望能够对也是在这方面的初学者有所提醒. 服务器的测试

linux 编译安装php及编译安装mysql常见错误总结及解决办法

一.编译安装php常见错误总结及解决办法 错误 1checking for xml2-config path…configure: error: xml2-config not found. Please check your libxml2 installation.解决办法:# yum -y install libxml2-devel 错误 2 checking for BZip2 in default path… not foundconfigure: error: Please rein

rsyn常见错误总结--方便用于排错

rsyn常见错误总结--方便用于排错 下面是rsyncd.conf的配置: #########zhaofanrsync######## uid = rsync gid = rsync use chroot =no maxconnections = 200 timeout = 300 pid file =/var/run/rsyncd.pid lock file =/var/run/rsync.lock log file =/var/log/rsyncd.log [zhaofan] path =

MySQL常见错误类型

MySQL常见错误类型:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库文件失败1012:不能读取系统表中的记录1020:记录已被其他用户修改1021:硬盘剩余空间不足,请加大硬盘可用空间1022:关键字重复,更改记录失败1023:关闭时发生错误1024:读文件错误1025:更改名字时发生错误1026:写文件错误10

hadoop常见错误

hadoop常见错误集锦: 1.DataXceiver error processing WRITE_BLOCK operation ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 192-168-11-58:50010:DataXceiver error processing WRITE_BLOCK operation src: 1)修改进程最大文件打开数 vi /etc/security/limits.conf 添加: # End

rsync(在window端使用常见错误)

我们都是通过错误日志查看在rsyncd.log里面或.err文件里面,大家可以用记事本打开查看. 注意windows下面我们需要给SvcwRsync用户,管理同步目录的所有权限,基本上这样就可以了 问题一: @ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3] 原因: 服务器端的目录不存在或无权限,创建目录并修正权限可解决

loadrunner的几种常见错误

转自网络 loadrunner的几种常见错误及解决办法1录:解决:.:在录制选项option-network-:2在回放脚本时出现的错误:Action.c(33)Error-35061:解决方法:可以用web_set_max_html:ParamName=Correlat:LB=c,:RB=n loadrunner的几种常见错误及解决办法 1录制loadrunner脚本时,无法生成脚本,录制过程中事物都有显示,我把所有防火墙和网络保护都关了,但是脚本就是无法生成,协议之类的都是对的. 解决:.

2019-6-18 MySQL常见错误大全(陆续更新)

MySQL常见错误大全--使用环境C7.4+MySQL5.7.20一 安装并初始化mysql数据库时可能出现的错误1.执行初始化数据库时报错: mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql 跳出如下错误: /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.s