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

时间:2013-10-26 07:46:55

标签: java keep-alive jsse persistent-connection


我使用java套接字编写了一个Client-Server程序,它运行得很好。现在我正在尝试继续使用HTTPS进行客户端和服务器之间的通信。
我的代码基于java内置套接字(Socket和ServerSocket),它的工作正常。但是当我使用HTTPS套接字( SSLSocket SSLServerSocket 而不更改代码的其余部分时,遗憾的是不再适用。
 
该程序需要服务器和客户端之间的持久连接,以便让它们在几分钟内发送和接收数据。问题似乎是在第一次交易完成后,服务器或客户端已关闭HTTPS连接。
 
更确切地说,这是发生的事情:
1.服务器创建一个SSLServerSocket并在其上调用“accept()”。
2.客户端创建SSLSocket并连接到服务器。然后通过“DataOutputStream”写入服务器 3.服务器通过“DataInputStream”读取客户端,并通过“DataOutputStream”发回其响应。
4.客户端通过“DataInputStream”读取服务器。
到目前为止一切都还可以!但在此之后,当客户端发送另一个流时,在服务器端,服务器上的数据将不会通过之前使用的相同方法“可用()”。
 
有没有办法让这个连接保持活力?
 
Tnx for ur提前帮助!

1 个答案:

答案 0 :(得分:1)

InputStream.available()不是检测套接字输入的可靠方法。因此,您没有证据表明连接不存在。只是阻止读取方法。这意味着每个客户端都有一个专用的线程。