【发布时间】:2010-12-07 04:27:57
【问题描述】:
在 java9 中更新:https://docs.oracle.com/javase/9/docs/api/java/io/InputStream.html#transferTo-java.io.OutputStream-
我看到了一些类似的,但不是我需要的线程。
我有一个服务器,它基本上会从客户端客户端 A 接收输入,并将其逐字节转发到另一个客户端客户端 B。
我想将客户端 A 的输入流与客户端 B 的输出流连接起来。这可能吗?有什么方法可以做到这一点?
此外,这些客户端正在相互发送消息,这些消息对时间有些敏感,因此无法进行缓冲。我不想要一个 500 的缓冲区,而客户端发送 499 个字节,然后我的服务器推迟转发 500 个字节,因为它没有收到最后一个字节来填充缓冲区。
现在,我正在解析每条消息以查找其长度,然后读取长度字节,然后转发它们。我认为(并测试)这比读取一个字节并一遍又一遍地转发一个字节要好,因为那会非常慢。出于我在上一段中所述的原因,我也不想使用缓冲区或计时器 - 我不希望仅仅因为缓冲区未满而等待很长时间才能通过的消息。
有什么好的方法可以做到这一点?
【问题讨论】:
标签: java inputstream outputstream