2013-10-26 80 views
3


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

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

更确切地说,这是发生了什么:
1.服务器创建一个SSLServerSocket并在其上调用“accept()”。
2.客户端创建一个SSLSocket并连接到服务器。然后通过“DataOutputStream”写入服务器
3.服务器通过“DataInputStream”读取客户端,并通过“DataOutputStream”发回其响应。
4.客户端通过“DataInputStream”读取服务器。
一切都很好,直到现在!但在此之后,当客户端发送另一个流时,在服务器端没有数据将通过之前使用的相同方法在服务器上“可用()”。

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

Tnx for ur帮助提前!Java SSLSocket不会保持活动状态(需要使用HTTPS持久连接)

+0

请问您可以添加一些代码吗?目前还不清楚“发送流”是什么意思, – Jk1

回答

1

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

相关问题