【问题标题】:Java SSLSocket won't stay alive (HTTPS Persistent connection needed)Java SSLSocket 不会保持活动状态(需要 HTTPS 持久连接)
【发布时间】:2013-11-19 09:15:37
【问题描述】:


我已经使用 java Sockets 编写了一个客户端-服务器程序,它工作得很好。现在我正在尝试使用 HTTPS 在客户端和服务器之间进行通信。
我的代码基于 java 内置的 Sockets(Socket 和 ServerSocket),它工作得很好。但是,当我使用 HTTPS 套接字(SSLSocket 和 SSLServerSocket)而不更改其余代码 时,很遗憾将不再工作。

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

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

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

Tnx for ur 提前帮助!

【问题讨论】:

  • 您能添加一些代码吗?目前尚不清楚“发送流”是什么意思

标签: java keep-alive jsse persistent-connection


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2013-01-27
    • 2014-02-08
    • 1970-01-01
    • 2012-01-03
    • 2021-09-13
    相关资源
    最近更新 更多