问题标签 [nio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1064 浏览

java - 如何通过 MINA 正确发送数据?

我正在尝试开始使用 MINA,并且所有示例似乎都将数据写入会话,而不是使用可以一遍又一遍地写入相同类型数据的方法。

我正在尝试使用org.apache.mina.filter.codec.demux.MessageEncoder/ MessageDecoderto encode/decode消息,这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行它。

假设我有一个ProtocolCodecFactory(which extends DemuxingProtocolCodecFactory) 有一个LoginRequestEncoder(which implements MessageEncoder<LoginRequest>,并通过工厂的addMessageEncoder方法添加)。这是否意味着我不应该直接session.write()使用用户名/密码数据调用,而是应该做这样的事情?

我不会撒谎...... MINA 似乎应该简化网络过程,我相信当我掌握它时它会,但我现在完全糊涂了。

0 投票
2 回答
2635 浏览

java - Java.NIO InvalidIndexException - 如何通过随机访问大文件进行读写

我创建了一个java.nio.MappedByteBuffer围绕一个java.io.RandomAccessFile(一个只有 54 KB 大小的文件)。结果MappedByteBuffer具有大约 12 KB 的“容量”和“限制”,所以当我尝试调用mybytebuffer.get(i > 13044)mybytebuffer.put(i > 13044, value)它抛出一个InvalidIndexException.

所有这些行为都记录在 Sun 的官方 javadocs 中。我的问题是如何使用java.nio ByteBuffers文件中的任何位置读取或写入(我需要随机访问)。我似乎找不到说明非顺序访问的 Java NIO 示例或文档。

0 投票
1 回答
28473 浏览

java - java.nio.file 在哪里

我正在阅读 java 文档,告诉我应该有一个 java.nio.file 命名空间。但是当我尝试导入它时,预编译器抱怨它不存在。

这是怎么回事?

0 投票
1 回答
829 浏览

java - Java、C++、NIO、映射缓冲区、同步

博览会:

我在 Linux / Mac 上。

我的部分代码是用 Java 编写的,我的部分代码是用 C++ 编写的。

它们都具有相同的文件映射以实现快速通信。

我想同步 Java 和 C++ 代码。

我知道以下内容:

1)给定Java中的两个线程,我可以使用锁/监视器。

2) 给定一段 Java 代码,一段 C++ 代码,我可以让它们通过 tcp/ip 同步

3) 给定两个已映射内存区域的 C++ 代码,我可以使用 gcc 的 compare_and_swap 对映射区域中的整数进行同步。

问题:

鉴于我的部分代码是用 Java 编写的,我的部分代码是用 C++ 编写的,我能以某种方式做 (3) - JVM 是否支持某种类型的原子比较和交换?那么我的 Java 和 C++ 代码都可以使用这个整数作为某种锁吗?

谢谢!

0 投票
2 回答
4771 浏览

java - 在不使用 java.io.* 的情况下获取 FileChannel(使用纯 NIO)

最近,我收到了对此答案java.io的评论,如果我想使用“纯 NIO” ,我应该远离。
这是简化的代码(复制文件):

(代码极其简化:删除了 try-finally 和循环)

我的问题是如何在FileChannel不使用 java.io ( ) 的情况下获取一个或其他 NIO 类来读取文件FileInputStream

编辑:
Java 6(或仅之前)

0 投票
1 回答
363 浏览

java - MINA:finishDecode 是我发送响应消息的地方吗?

在使用 Apache MINA 时,我从客户端发送登录请求,该请求在服务器上通过LoginRequestDecoder (implements org.apache.mina.filter.codec.demux.MessageDecoder).

我现在想发送一个LoginResponse包含成功/失败代码的响应 ()。我应该从该LoginRequestDecoder's finishDecode()方法发送响应,还是有更好的地方可以忽略它?

0 投票
1 回答
195 浏览

java - 是否需要不基于 Spring/Tomcat 的 Java 7 云服务器框架?

是否存在对旨在使云服务更优雅的小型、轻量级、基于 Java 7 的开源项目的需求?我在我的一生中编写了几台服务器,并且很好奇是否需要这样做。

我的想法是保持简单、轻量,并使用 Java 7 NIO 2 功能进行网络通信。我还在考虑使用广播地址在机架解决方案 (MBONE) 中的服务器之间进行基于本地云的通信,或者使用基于序列化的通信协议。

我不想使用 Spring 或 Tomcat,因为它们太重了,而且它们是用较旧的 Java 技术编写的。此外,我不想使用另一个 Apache 项目,因为它过于依赖 Apache 技术。这里的关键词是“小”、“轻”、“便携”和“高效”。

也许这甚至有可能被安装在移动设备中作为后台服务器使用,甚至是移动云网络。

0 投票
30 回答
346415 浏览

java - 递归列出Java中的文件

如何递归列出Java目录下的所有文件?该框架是否提供任何实用程序?

我看到了很多 hacky 的实现。但是没有来自框架或nio

0 投票
2 回答
318 浏览

java - 如何扩展这个单线程 Java 客户端?

我正在用 Java 编写一个 Stomp 协议客户端,它只有一个线程来处理 IO。这意味着线程来回读取和写入应用程序的传入数据。我的问题是,如果将来我需要使用多线程和 NIO 扩展此应用程序,该如何安排?

我的 IO 处理器线程称为“TcpLink”链接,它具有以下骨架

如果我需要允许多个线程分派传入的消息,应该如何更改这个类?

谢谢!

0 投票
1 回答
2194 浏览

java - nio FileChannel.transferFrom 传输 0?

我正在尝试使用 NIO 使用 transferFrom 从几个较小的文件中组装一个文件。

对 transferFrom 的调用返回 0。没有例外。没有做任何事情来打开同步行为。

示例日志: