nio相关内容

Netty如何确定读取何时完成?

下面是回应服务器的ChannelHandler。 Netty框架将调用channelReadComplete()方法通知处理程序对channelRead()的最后一次调用是当前批处理中的最后一条消息。 我的问题是,既然数据是通过中继线传输的,Netty如何知道a batch of message何时完成? 推荐答案 Channel ReadComplete()在没有更多数据 ..
发布时间:2022-08-09 21:12:04 Java开发

JUnit AssertionError:在Maven中运行时无法识别平台

我正在使用Java 1.8将我们项目的构建结构从Ant转换到Maven(3.3.3),但我遇到了一个令我困惑的问题。我们的所有单元测试在Ant和Eclipse中都能正常工作,但我遇到过几个在Maven中执行失败的单元测试。失败的测试(不幸的是,由于公司的限制,我不能发布源代码)都试图通过javax.Imageio.ImageIO类读取图像,并且似乎都失败了,并显示NoClassDefFoundEr ..
发布时间:2022-05-26 11:59:58 Java开发

Java套接字缓存DNS吗?

套接字的ctor具有将服务器作为字符串或InetAddress的版本。是否缓存了DNS查找的结果,以便另一个构造的套接字将跳过执行查找并使用缓存值(如果可用)?如果是这样,这是适用于两个版本,还是只适用于接受InetAddress的版本? 推荐答案 Java套接字缓存DNS吗? 不是,但InetAddress是这样做的,或者它的引擎盖下有什么东西,并且Socket使用InetAd ..
发布时间:2022-05-26 11:49:29 Java开发

读取一行字符并获取文件位置

我正在从文本文件中读取连续的字符行。文件中字符的编码可能不是单字节。 在某些情况下,我想要获取下一行开始的文件位置,以便以后可以重新打开文件并快速返回到该位置。 问题 有没有一种简单的方法可以同时做到这两点,最好使用标准的Java库? 如果没有,合理的解决方法是什么? 理想解的属性 理想的解决方案是处理多个字符编码。这包括UTF-8,在UTF-8中,不同的字符可以由 ..
发布时间:2022-05-26 11:32:16 Java开发

从套接字到套接字的零分配复制

假设我们有一个套接字连接(让我们称之为c1), 我们还有N个其他套接字连接,我们要写入完全相同的消息, 要确定我们希望它写入哪个连接,我们只需要从c1读取前几个字节,但套接字上的其余字节不需要加载到Java堆中,只需写入c2... 简而言之,我们想要做的是。 我们在c1上有要读取的字节数的事件 我们读取前几个字节,并确定我们知道要将其重定向到c2。 我们将已经从c1获取的前几个字节写入c2,现在 ..
发布时间:2022-05-26 11:27:23 Java开发

Jersey客户端非阻塞

派生大量线程从来都不是一个好主意(当您创建太多线程时,无论如何都可能会耗尽内存)。 通常,Jersey需要为每个请求创建一个线程。无论我使用async()(Jersey为我创建线程-我已经在调试器中研究过这一点),还是不使用(显然我必须自己创建线程),情况似乎都是如此。 所以这里有一个具体的情况,这是不够好的: 我正在以高达500个请求/秒的速度向远程服务器发送HTTP。但是,由 ..
发布时间:2022-05-26 11:23:25 Java开发

GetCanonicalPath和toRealPath之间的差异

是否存在File.getCanonicalPath()和File.toPath().toRealPath()会产生不同结果的情况? 他们似乎都做了非常相似的事情,但文档从来没有明确表示他们应该做同样的事情。 在边界案例中,我是否倾向于使用其中一种方法? 那么File.getAbsoltePath()和Path.toAbsoltePath()又如何呢--它们应该以相同的方式工作吗? 推荐答案 ..
发布时间:2022-05-26 11:10:32 Java开发

是否有一个Java ByteBuffer实现在幕后结合了多个支持ByteBuffer?

我有一个或多个包含单个消息部分的ByteBuffer。现在我想阅读此消息,但我不想将N字节缓冲区复制到单个字节缓冲区中。我的解析器需要一个包含完整消息的ByteBuffer,但我的消息被分成N个ByteBuffer。 有没有一种方法可以在不复制字节的情况下将这N个字节缓冲区合并为一个单独的缓冲区?我想象着ByteBuffer抽象类的某种智能实现,它由这些ByteBuffer幕后支持,只需将指针和 ..
发布时间:2022-04-08 15:54:39 Java开发

递归列出Java中的文件

如何递归列出 Java 目录下的所有文件?该框架是否提供任何实用程序? 我看到了很多 hacky 实现.但没有来自框架或 nio 解决方案 Java 8 提供了一个很好的流来处理树中的所有文件. Files.walk(Paths.get(path)).filter(文件::isRegularFile).forEach(System.out::println); 这提供了一种自然的 ..
发布时间:2022-01-30 09:39:07 Java开发

使用 Netty 的 UDP 服务器中丢失了很多 UDP 请求

我用 Netty 编写了一个简单的 UDP 服务器,它只是在日志中打印出接收到的消息(帧).为此,我创建了一个简单的帧解码器解码器和一个简单的消息处理程序.我还有一个客户端可以顺序和/或并行发送多个请求. 当我将我的客户端测试器配置为顺序发送例如几百个请求时,它们之间有一个小的延迟,我用 Netty 编写的服务器可以正确接收它们.但是,当我增加客户端中的同时请求数量(例如 100 个)以及顺 ..
发布时间:2022-01-22 17:10:04 其他开发

在java中使用非阻塞I/O发送消息(NIO API)

我正在编写一个服务器/客户端程序,客户端将文本消息发送到服务器.我使用了非阻塞 I/O (NIO API),但服务器上的消息无法正确显示.这是我在服务器上的代码: private JTextArea displayArea;私有int numBytes;私有 ByteBuffer 缓冲区;/*...一些代码在这里...*/displayArea = 新的 JTextArea();add(new ..
发布时间:2022-01-19 16:37:01 Java开发

.NET 的任何 NIO 框架?

.NET 是否有任何非阻塞 IO 框架? 我正在寻找类似于 Apache Mina 和 JBoss Netty 为 Java 提供:一个用于实现高度可扩展的服务器的框架——而不仅仅是 .NET 框架提供的低级支持. 编辑:为了更好地解释我希望看到的内容,这里有一个基本示例,说明您可以使用 Mina 做什么: 在 Mina 中,我可以像这样实现 ProtocolDecoder: ..
发布时间:2022-01-16 19:51:32 C#/.NET

使用 NIO 直接缓冲区时设置 -XX:+DisableExplicitGC 的影响

我们正在构建一个具有激进性能 SLA 的 Web 应用程序,由于 System.gc() 调用导致 JVM 出去吃午饭,这些 SLA 会定期被违反.我们进行了一些调试,并确定在所有情况下,调用 System.gc() 的都是内部应用服务器代码.这在应用服务器启动或应用程序部署时会发生几次,我们并不关心.但是,System.gc() 也会在应用启动并通过内部应用服务器调用 NIO 类运行时定期触发. ..
发布时间:2022-01-16 10:05:54 Java开发

使用 java.io 寻找 ByteArrayInputStream

如何寻找(改变位置)ByteArrayInputStream (java.io)?这是如此明显的事情,但我似乎无法在任何地方找到这种方法(mark/reset 是不够的,我需要将位置设置为InputStream). 如果使用 java.io 无法完成,我必须切换到 java.nio 并使用 ByteBuffer,怎么办我得到了类似于 DataOutputStream 的东西,它使用 java ..
发布时间:2022-01-07 20:41:47 Java开发

为什么 java DirectoryStream 执行得这么慢?

我已经使用 nio 包的 DirectoryStreams 对 Streams 进行了一些测试.我只是尝试获取按上次修改日期和大小排序的目录中所有文件的列表. 旧 File.listFiles() 的 JavaDoc 声明了一个 注意文件s中的方法: 注意 Files 类定义了 newDirectoryStream 方法来打开一个目录并遍历目录中的文件名目录.在处理非常大的文件时,这可 ..
发布时间:2022-01-07 20:21:45 Java开发

Java 大文件磁盘 IO 性能

我的硬盘上有两个(每个 2GB)文件,想将它们相互比较: 使用 Windows 资源管理器复制原始文件大约需要.2-4 分钟(即读取和写入 - 在同一个物理和逻辑磁盘上). 使用 java.io.FileInputStream 读取两次并在每个字节的基础上比较字节数组需要 20 多分钟. java.io.BufferedInputStream 缓冲区为 64kb,分块读取文件,然后进行比 ..
发布时间:2022-01-07 20:03:04 Java开发