更新(此问题已解决):我已更新此问题中的代码以包含现在正在运行的代码,请随意在自己的作品中使用它(代码示例已模式为为了简单起见的废话)
下午好StackOverflow,
所以在过去的一天或者我一直在研究具有Web界面的服务器软件,我一直在尝试设置HTTPS连接的处理。我让它工作得很好但是现在我只想在一个TCP端口上处理HTTP和HTTPS连接。
我有可以检测到SSL / TLS ClientHello消息的代码,问题是在检测到消息后尝试将痛苦文本套接字转换为SSLSocket,而不是我正在使用的代码。
WebServer.java
- > http://pastebin.com/JSjNpC2Y
SecurityTools.java
- > http://pastebin.com/Q8yVLNp7
BufferedSocket.java
- > http://pastebin.com/SuWB8P7r
BufferedSocketServer.java
- > http://pastebin.com/Nr7MrhEH
当我连接HTTP什么都没发生时,甚至没有抛出错误或异常,当我连接HTTPS时,我得到以下一组异常(我链接到一个粘贴bin以节省此帖子中的空间)< / p>
欢迎提供任何帮助和建议。
感谢您的帮助!
答案 0 :(得分:2)
重置您自己的输入流对底层套接字没有影响。您需要为Socket类创建自己的包装器,它返回一个可标记的输入流。然后,如果是SSL,则需要重置该流并将包装器传递给SSLSocketFactory。否则它将看不到您看到的客户端问候。