Socket错误码一览表
文章目录
- Socket错误码一览表
- 前言
- 错误码表
前言
在软件开发和网络通信编程中,SocketError算是一个绕不开的坎。它可能因为各种原因而来,比如网络问题、用户搞错了、应用程序出错等等。本文整理一张SocketError排查建议表格就是为了帮助我们在遇到这些问题时,能够快速找到原因并解决。
这份表格里列举了各种常见的Socket错误码以及对应的排查建议,通过这个表格,不仅能让新手快速对症下药,更轻松的找到问题的源头并解决。
错误码表
错误ID | 英文名 | 中文名 | 描述 | 排查建议 |
---|---|---|---|---|
10013 | AccessDenied | 访问被拒绝 | 已试图通过被其访问权限禁止的方式访问 Socket。 | 检查程序是否有足够的权限来访问 Socket;检查防火墙设置;尝试以管理员身份运行程序。 |
10048 | AddressAlreadyInUse | 地址已在使用中 | 通常,只允许使用地址一次。 | 确保不同的应用程序或服务未使用相同的地址;尝试更改监听的端口。 |
10047 | AddressFamilyNotSupported | 不支持的地址族 | 不支持指定的地址族。 | 如果出现 IPv6 或 IPv4 地址族相关错误,请检查计算机是否安装了对应的 IPv6 或 IPv4 堆栈。 |
10049 | AddressNotAvailable | 地址不可用 | 选定的 IP 地址在此上下文中无效。 | 确保指定的 IP 地址是有效的、可用的;检查网络配置是否正确。 |
10037 | AlreadyInProgress | 操作进行中 | 非阻止性 Socket 已有一个操作正在进行中。 | 等待当前操作完成后再执行下一个操作;确保在每个 Socket 上只进行一个操作。 |
10053 | ConnectionAborted | 连接中止 | 此连接由 .NET 或基础套接字提供程序中止。 | 出现连接中止错误时,请尝试重新连接;检查连接是否被远程主机重置。 |
10061 | ConnectionRefused | 连接被拒绝 | 远程主机正在主动拒绝连接。 | 确保远程主机正在运行,并且端口未被阻止;检查远程主机的防火墙设置。 |
10054 | ConnectionReset | 连接被重置 | 此连接由远程对等计算机重置。 | 检查网络连接或通信是否稳定;尝试重新建立连接。 |
10039 | DestinationAddressRequired | 需要目标地址 | 在对 Socket 的操作中省略了必需的地址。 | 为 Socket 操作提供正确的目标地址;检查代码发送信息是否完整。 |
10101 | Disconnecting | 断开连接中 | 正常关机正在进行中。 | 等待断开连接完成后再进行下一步操作;确保关闭连接前已发送所有待发送的数据。 |
10014 | Fault | 故障 | 基础套接字提供程序检测到无效的指针地址。 | 检查代码中是否存在指针错误;确保指针地址有效;使用调试工具检查错误发生点。 |
10064 | HostDown | 主机已关闭 | 由于远程主机被关闭,操作失败。 | 检查远程主机是否正常运行;确保网络连接稳定;尝试在其他主机上进行操作。 |
11001 | HostNotFound | 主机未找到 | 无法识别这种主机。 | 检查主机名或 IP 地址是否拼写正确;确保主机名或 IP 地址有效;检查网络设置是否正确。 |
10065 | HostUnreachable | 主机不可访问 | 没有到指定主机的网络路由。 | 检查网络连接及路由设置;尝试连接到其他主机;联系网络管理员解决网络路由问题。 |
10036 | InProgress | 进行中 | 阻止操作正在进行中。 | 等待操作完成后再进行下一步操作;确保在每个 Socket 上只进行一个操作。 |
10004 | Interrupted | 已中断 | 已取消阻止 Socket 调用的操作。 | 在中断操作后重新进行操作;确认操作是否因为中断而失败。 |
10022 | InvalidArgument | 无效参数 | 给 Socket 成员提供了一个无效参数。 | 检查传递给 Socket 的参数是否正确;确保参数类型和值符合要求;查看文档获取正确的参数信息。 |
997 | IOPending | IO 挂起 | 应用程序已启动一个无法立即完成的重叠操作。 | 等待 IO 操作完成或报错后再进行其他操作;确认重叠操作是否正确启动。 |
10056 | IsConnected | 已连接 | Socket 已连接。 | 在对已连接的 Socket 进行操作验证连接状态;检查网络连接是否正常稳定。 |
10040 | MessageSize | 数据报过长 | 数据报太长。 | 检查要发送或接收的数据报大小是否符合规定;尝试拆分数据报或增加接收缓冲区大小。 |
10050 | NetworkDown | 网络不可用 | 网络不可用。 | 检查网络连接及设置;确认网络是否正常运行;联系网络管理员解决网络连接问题。 |
10052 | NetworkReset | 网络重置 | 应用程序尝试在已超时的连接上设置 KeepAlive。 | 尝试重新建立连接或保持连接时考虑超时设置;确认网络连接及设置是否正常。 |
10051 | NetworkUnreachable | 网络不可达 | 不存在到远程主机的路由。 | 检查网络路由设置和连接;尝试连接到其他主机;联系网络管理员解决网络路由问题。 |
10055 | NoBufferSpaceAvailable | 没有可用缓冲区空间 | 没有可用于 Socket 操作的可用缓冲区空间。 | 检查程序是否频繁创建 Socket 导致缓冲区不足;调整和优化程序的缓冲区使用;考虑增加缓冲区大小。 |
11004 | NoData | 未找到数据 | 在名称服务器上找不到请求的名称或 IP 地址。 | 检查请求的名称或 IP 地址是否正确;确认 DNS 设置是否正确;尝试使用其他 DNS 服务器。 |
11003 | NoRecovery | 无法恢复错误 | 错误不可恢复或找不到请求的数据库。 | 尝试重新执行操作;联系服务提供商或数据中心解决错误;查找数据备份进行恢复或备用解决方案。 |
10057 | NotConnected | 未连接 | 应用程序试图发送或接收数据,但是 Socket 未连接。 | 在发送或接收数据前确保 Socket 已连接;检查连接状态并重新建立连接。 |
10093 | NotInitialized | 未初始化 | 尚未初始化基础套接字提供程序。 | 初始化基础套接字提供程序以确保后续操作正常进行;检查程序是否正确初始化网络套接字。 |
10038 | NotSocket | 非套接字 | 对非套接字尝试 Socket 操作。 | 确保对 Socket 操作前已创建合法的套接字;检查代码中是否意外传入了非套接字对象。 |
995 | OperationAborted | 操作被中止 | 由于 Socket 已关闭,重叠的操作被中止。 | 在操作中断错误发生后重新启动操作;检查 Socket 关闭状态及重叠操作连接状态。 |
10045 | OperationNotSupported | 不支持的操作 | 协议族不支持地址族。 | 确保使用正确的协议族和地址族进行操作;检查文档以获取支持的协议族和地址族信息。 |
10067 | ProcessLimit | 进程限制 | 正在使用基础套接字提供程序的进程过多。 | 确保过多的进程释放网络资源;考虑升级系统或扩展资源限制;优化程序利用资源。 |
10046 | ProtocolFamilyNotSupported | 协议族不支持地址族 | 未实现或未配置协议族。 | 确保协议族设置正确并已配置;尝试更改协议族或查看系统设置是否正常。 |
10043 | ProtocolNotSupported | 协议不支持 | 未实现或未配置协议。 | 检查协议配置是否正确;确定协议是否受支持或需要修改;查找更适合的协议进行通信。 |
10042 | ProtocolOption | 协议选项错误 | 对 Socket 使用了未知、无效或不受支持的选项或级别。 | 检查所用协议选项是否符合规定;可尝试重置 Socket 和协议选项;查找支持的协议选项进行设置。 |
10041 | ProtocolType | 协议类型错误 | 此 Socket 的协议类型不正确。 | 确保选择正确的协议类型配置 Socket;查看 Socket 文档以获取正确的协议类型信息。 |
10058 | Shutdown | 关闭连接 | 发送或接收数据的请求未得到允许,因为 Socket 已被关闭。 | 在关闭 Socket 前完成数据传输或接收;检查是否意外关闭了 Socket;确保关闭连接前已发送所有数据。 |
-1 | SocketError | Socket 错误 | 发生了未指定的 Socket 错误。 | 检查其他具体的错误信息观察问题点;查找相关文档或技术支持了解更多错误细节。 |
10044 | SocketNotSupported | 不支持的套接字类型 | 在此地址族中不存在对指定的套接字类型的支持。 | 确认套接字类型是否正确选择;尝试更改套接字类型进行通信;考虑更适合的套接字类型。 |
0 | Success | 操作成功 | Socket 操作成功。 | 检查连接及数据传输是否正常完成;确认操作结果符合预期;继续下一步操作。 |
10091 | SystemNotReady | 网络子系统不可用 | 网络子系统不可用。 | 检查系统网络子系统的状态;检查网络连接和服务是否正常运行;联系系统管理员解决网络子系统问题。 |
10060 | TimedOut | 连接超时 | 连接尝试超时,或者连接的主机没有响应。 | 确保网络连接及目标主机正常运行;考虑增加连接超时时间;尝试使用其他网络或主机进行连接。 |
10024 | TooManyOpenSockets | 打开 Socket 过多 | 基础套接字提供程序中打开的套接字太多。 | 关闭不必要的 Socket 连接;检查代码循环内是否频繁打开 Socket;优化程序资源使用。 |
11002 | TryAgain | 请稍后重试 | 无法解析主机名。 | 等待一段时间后重新尝试解析主机名;检查主机名是否正确拼写;确认网络连接是否正常。 |
10109 | TypeNotFound | 类型未找到 | 未找到指定的类。 | 确保指定的类存在并正确导入;查看代码是否正确提供类型;检查类或库是否被正确引用。 |
10092 | VersionNotSupported | 版本不支持 | 基础套接字提供程序的版本超出范围。 | 确保程序使用的套接字提供程序版本与系统兼容;升级套接字提供程序版本或调整程序匹配的版本。 |
10035 | WouldBlock | 资源暂时不可用 | 对非阻止性套接字的操作不能立即完成。 | 等待资源可用后再进行操作;积极处理非阻止套接字的返回错误;检查程序逻辑是否正确处理 Socket 状态。 |