在Java9中更新:https://docs.oracle.com/javase/9/docs/api/java/io/InputStream.html#transferTo-java.io.OutputStream-我看到了一些类似但不是很需要的线程。我有一台服务器,它基本上将从客户端A的客户端接收输入,并将其逐字节转发到另一个客户端B。我想将客户端A的输入流与客户端B的输出流连接。这可能吗?有什么方法可以做到这一点?而且,这些客户端正在互相发送消息,这在时间上有些敏感,因此不会进行缓冲。我不希望有500个缓冲区,而客户端发送499个字节,然后我的服务器推迟转发500个字节,因为它没有收到填充缓冲区的最后一个字节。现在,我正在解析每个消息以找到其长度,然后读取长度字节,然后转发它们。我认为(并测试)这比读取字节并一次又一次地转发字节要好,因为那会很慢。由于我在上一段中提到的原因,我也不想使用缓冲区或计时器-我不希望仅由于缓冲区未满而等待很长时间的消息才能通过。有什么好方法吗?
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
只是使用怎么样
void feedInputToOutput(InputStream in, OutputStream out) {
IOUtils.copy(in, out);
}
并完成它?
来自jakarta apache commons i / o库,该库已经被大量项目使用,因此您可能已经在类路径中包含了jar。
添加回答
举报
0/150
提交
取消