3


我已经使用 java Sockets 编写了一个客户端-服务器程序,它工作得很好。现在我正在尝试使用 HTTPS 在客户端和服务器之间进行通信。
我的代码基于 java 内置套接字(Socket 和 ServerSocket),它工作得很好。但是,当我在不更改其余代码的情况下使用 HTTPS 套接字(SSLSocketSSLServerSocket)时,不幸的是将不再工作。 该程序需要服务器和客户端之间的持久连接才能让它们在几分钟内发送和接收数据。问题似乎是在第一个事务完成后,HTTPS 连接已在服务器或客户端关闭。 更准确地说,会发生以下情况:




1. 服务器创建一个 SSLServerSocket 并在其上调用“accept()”。
2. 客户端创建一个 SSLSocket 并连接到服务器。然后通过“DataOutputStream”写入服务器
3. 服务器通过“DataInputStream”读取客户端并通过“DataOutputStream”发回响应。
4、客户端通过“DataInputStream”读取服务器。
到目前为止一切正常!但是在那之后,当客户端发送另一个流时,在服务器端,通过之前使用的相同方法,服务器端将没有数据“可用()”。

有没有办法让这种联系保持活力?

Tnx 为您提前提供帮助!

4

1 回答 1

1

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

于 2013-10-26T08:51:51.290 回答