Java SSLSocket 不会保持活动状态(需要 HTTPS 持久连接)




我已经使用java套接字编写了一个客户端 - 服务器程序,它工作得很好。现在我正在尝试转向HTTPS在客户端和服务器之间进行通信。我的代码基于 java 内置套接字(套接字和服务器套接字),它工作得很好。但是当我使用HTTPS套接字(SSLSocket和SSLServerSocket而不更改其余代码时,不幸的是,它将不再起作用。 该程序需要服务器和客户端之间的持久连接,以便它们发送和接收数据几分钟。问题似乎是在第一个事务完成后,HTTPS连接已在服务器或客户端关闭。 更准确地说,这是发生的事情:
1. 服务器创建一个 SSLServerSocket 并在其上调用 "accept()"。2. 客户端创建一个 SSLSocket 并连接到服务器。然后通过"DataOutputStream"
写入服务器3. 服务器通过"DataInputStream"读取客户端,并通过"DataOutputStream"发回其响应。4. 客户端通过"数据输入流"读取服务器。到目前为止一切都很好!但是在那之后,当客户端发送另一个流时,在服务器端,不会通过以前使用的相同方法在服务器上"可用()"任何数据。 有没有办法保持这种联系? Tnx提前为您提供帮助!

InputStream.available()不是

检测套接字输入的可靠方法。因此,您没有证据表明该连接不是活动的。只需在读取方法中阻止即可。这意味着每个客户端都有一个用于读取的专用线程。

最新更新