持久的I / O流连接

时间:2012-08-31 15:30:28

标签: java ssl

我正在与服务器进行通信,理想情况下我希望输入流和输出流始终处于运行状态。我收到未经请求的回复,因此我必须准备好接收输入流上的数据。

在我进一步深入研究之前,我应该说,无论我做什么联系都必须能够支持SSL。

我遇到的问题是当我打开HttpUrLConnection并从输出流发送内容时,它将不会发送实际输出,直到我打开输入流。如果我打开一个输入流,它会终止输出流,一旦流关闭,似乎没有恢复它。

实现我想要的行为的最佳方法是什么?如果在一个端口上同时维护两个流是不可能的,有没有办法让两个独立的流通过一种端口锁/交换机共享连接?

是否有用于发送输出的库而不必终止输出流以表示我的请求已结束?

2 个答案:

答案 0 :(得分:2)

Http是一个单一的请求协议。

您不能(除非websocket)使用http创建持久连接。你需要另一个协议。

可以使用基本套接字。它主要像http连接,除了url以socket://。

开头

您只需打开一个连接,然后就可以获取输入流和输出流并使用它们。

答案 1 :(得分:1)

- 我最好的选择是使用java.nio package

- 使用 java.nio 包中的SocketChannel,我们可以将SocketChannel设置为非阻止模式。执行此操作后,您可以在异步模式下拨打connect()read()write()