首页 > 解决方案 > 使用 OpenSSL C++ 连接 TCP 端口时抛出 10054 错误?

问题描述

我尝试用它的 TCP 端口连接远程主机。

命令提示符返回 10054 错误

当我从 C++ 应用程序尝试时,同样的返回

openssl 命令:s_client -connect url:port

WSAECONNRESET 10054

对等方重置连接。现有连接被远程主机强行关闭。如果远程主机上的对等应用程序突然停止,主机重新启动,主机或远程网络接口被禁用,或者远程主机使用硬关闭,这通常会导致(有关远程主机上 SO_LINGER 选项的更多信息,请参阅 setsockopt插座)。如果在一个或多个操作正在进行时,由于保活活动检测到故障而导致连接中断,则也可能导致此错误。正在进行的操作因 WSAENETRESET 而失败。后续操作因 WSAECONNRESET 而失败。

标签: c++tcpopenssl

解决方案


鉴于s_client您的(未知)应用程序都是这种情况,它可能既不是您的应用程序的错,也不是s_client. 相反,原因可能是您的系统和服务器之间的防火墙阻止了连接,或者您尝试连接到首先不使用 TLS 的服务,例如通过连接到普通 HTTP 而不是 HTTPS 服务. 如果您将失败的完整输出包含在您的问题中,则可能会提供更多信息 openssl s_client


推荐阅读