我使用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提前帮助!
答案 0 :(得分:1)
InputStream.available()
不是检测套接字输入的可靠方法。因此,您没有证据表明连接不存在。只是阻止读取方法。这意味着每个客户端都有一个专用的线程。