猿问

将输入流连接到输出流

在Java9中更新:https://docs.oracle.com/javase/9/docs/api/java/io/InputStream.html#transferTo-java.io.OutputStream-


我看到了一些类似但不是很需要的线程。


我有一台服务器,它基本上将从客户端A的客户端接收输入,并将其逐字节转发到另一个客户端B。


我想将客户端A的输入流与客户端B的输出流连接。这可能吗?有什么方法可以做到这一点?


而且,这些客户端正在互相发送消息,这在时间上有些敏感,因此不会进行缓冲。我不希望有500个缓冲区,而客户端发送499个字节,然后我的服务器推迟转发500个字节,因为它没有收到填充缓冲区的最后一个字节。


现在,我正在解析每个消息以找到其长度,然后读取长度字节,然后转发它们。我认为(并测试)这比读取字节并一次又一次地转发字节要好,因为那会很慢。由于我在上一段中提到的原因,我也不想使用缓冲区或计时器-我不希望仅由于缓冲区未满而等待很长时间的消息才能通过。


有什么好方法吗?


富国沪深
浏览 450回答 3
3回答

函数式编程

只是使用怎么样void feedInputToOutput(InputStream in, OutputStream out) {   IOUtils.copy(in, out);}并完成它?来自jakarta apache commons i / o库,该库已经被大量项目使用,因此您可能已经在类路径中包含了jar。
随时随地看视频慕课网APP

相关分类

Java
我要回答