java.net.SocketException:连接重置

0 java sockets ssl

我正在编写一个应用程序,我可以在其中控制客户端和服务器的代码。我正在使用 SSLSockets 来实现它。我已经使用普通的不安全套接字运行了协议,但是当我尝试切换到 SSLSockets(使用完全相同的协议)时,我不断收到以下堆栈跟踪:

java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:168)
        at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:782)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:739)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,完全相同的代码与不安全的套接字完美兼容。为什么会这样?

对于任何反馈,我们都表示感谢。谢谢你。

巴勃罗

Cra*_*lus 5

从您的帖子中无法检测到问题。
当您切换到安全套接字时,默认使用最安全的密码。
如果您没有正确配置您的信任库/密钥库(或者没有启用未经身份验证的套件),那么 SSL 握手将失败。
例外似乎表明了这一点。如果您希望有人帮助您,
您可以做的是运行您的程序javax.net.debug=ssl,handshake以启用 SSL 调试信息并发布调试信息和您的代码。