首页 文章

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

提问于
浏览
3

我使用java套接字编写了一个Client-Server程序,它运行得很好 . 现在我正在尝试继续使用HTTPS进行客户端和服务器之间的通信 .
我的代码基于java内置套接字(Socket和ServerSocket),它的工作正常 . 但是当我使用HTTPS套接字( SSLSocketSSLServerSocketwithout changing the rest of the code 时,遗憾的是不再适用 .

该程序需要服务器和客户端之间的持久连接,以便让它们在几分钟内发送和接收数据 . 问题似乎是在第一次交易完成后,服务器或客户端已关闭HTTPS连接 .

更确切地说,这就是:
1.服务器创建一个SSLServerSocket并在其上调用"accept()" .
2.客户端创建SSLSocket并连接到服务器 . 然后通过"DataOutputStream"写入服务器
3.服务器通过"DataInputStream"读取客户端,并通过"DataOutputStream"发回其响应 .
4.客户端通过"DataInputStream"读取服务器 .
到现在为止一切都还可以!但在此之后,当客户端发送另一个流时,在服务器端,通过之前使用的相同方法,服务器上的数据不会是"available()" .

有没有办法让这个连接保持活力?

Tnx for ur提前帮助!

1 回答

  • 1

    InputStream.available() isn 't a reliable way of detecting socket input. You therefore have no evidence that the connection isn' t还活着 . 只是阻止读取方法 . 这意味着每个客户端的读取专用线程 .

相关问题