SSLSocket.getInputStream()在调用Java11时挂起是因为在Java11中,对于SSLSocket的输入流操作进行了一些改变。在之前的版本中,调用SSLSocket.getInputStream()会立即返回一个输入流对象,可以用于读取数据。但是在Java11中,当调用SSLSocket.getInputStream()时,如果SSL握手尚未完成,该方法会挂起并等待握手完成后再返回输入流对象。
这个改变是为了增强网络安全性。在SSL握手过程中,客户端和服务器会协商加密算法、验证证书等操作,这些操作可能需要一定的时间。在Java11中,当调用SSLSocket.getInputStream()时,如果握手尚未完成,Java会自动挂起该线程,等待握手完成后再继续执行。
这种改变的优势是可以防止在握手过程中读取到未加密的数据,提高了数据的安全性。同时,这也意味着开发人员在使用SSLSocket时需要注意处理挂起的情况,以避免出现阻塞的情况。
SSLSocket.getInputStream()的应用场景主要是在需要进行安全通信的网络应用中,例如HTTPS协议的客户端。通过调用该方法可以获取到SSL连接的输入流,用于读取服务器返回的数据。
腾讯云提供了一系列与网络安全相关的产品,例如SSL证书、Web应用防火墙(WAF)、DDoS防护等。具体可以参考腾讯云的安全产品页面:https://cloud.tencent.com/product/security
需要注意的是,本回答中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,因为题目要求不提及这些品牌商。
领取专属 10元无门槛券
手把手带您无忧上云