4

我正在与服务器通信,理想情况下,我希望输入流和输出流始终处于启动状态。我收到不请自来的响应,所以我必须随时准备好接收输入流上的数据。

在我进一步深入之前,我应该说我建立的任何连接都必须能够支持 SSL。

我遇到的问题是,当我打开 HttpUrLConnection 并从输出流发送内容时,它不会发送实际输出,直到我打开输入流。如果我打开一个输入流,它会杀死输出流,并且一旦流关闭,似乎就无法恢复它。

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

是否有一个库可以发送输出而不必终止输出流来表示我的请求结束?

4

2 回答 2

2

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

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

可以使用基本插座。除了 url 以 socket:// 开头外,它的工作方式与 http 连接非常相似。

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

于 2012-08-31T15:48:34.400 回答
1

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

-使用java.nioSocketChannel包,我们可以设置成非阻塞模式。当你这样做时,你可以在异步模式下调用和。SocketChannelconnect()read()write()

于 2012-08-31T17:31:11.153 回答