- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于从 SocketChannel
读取数据的问题。假设我们有这样的东西:
SelectionKey key = //;
ByteBuffer b = ByteBuffer.allocateDirect(128);
SocketChannel ch = (SocketChannel) key.channel();
int bytesRead = ch.read(b); //returns 128
因此,在这种情况下,我无法确定是否从 channel 读取了所有可用字节(因为读取的字节和缓冲区大小相同)。那么我需要从 SelectedSet
中删除 key
吗?或者即使我删除,在下一个事件循环迭代中我可以检索 key 并读取所有剩余字节?
最佳答案
是的。如果有更多数据需要读取,OP_READ 将再次触发。
关于java - 我应该从 SelectedSet 中删除 SelectionKey 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45654084/
我创建了一个抽象 public interface Channel 对于java.nio.channels.SelectableChannel ,它提供了 isBidirectional方法和 get
我很好奇为什么代码总是告诉我“ key 不可写”?我的代码有什么问题吗?每次套接字读到一些内容时,我都会将键设置为对 OP_WRITE 感兴趣,并测试它是否可写。但是总是说不可写。我完全是Java套接
我正在尝试使用带有可选 channel 的 NIO 创建一个简单的服务器,并将主 NIO 循环之外的所有“重”逻辑移至单独的线程中。但我无法从其他线程注册 SelectionKey 。抱歉读得太长了。
在我的 Java NIO 实现中,我无法让 SelectionKey.attach() 工作。基本上,一旦客户端连接(OP_ACCEPT interest ops),我将它们添加到一个映射中,在该映射
下面的代码显示了一小块代码,它尝试接受来自客户端的传入连接(使用 java NIO 的典型实现),但是当我尝试从迭代器中删除 SelectionKey 时,它会抛出该异常。 这段代码看起来与 Jenk
在我的应用程序中,我使用多个线程来处理客户端连接。 我在调试时发现了一个非常奇怪的行为 - 我有一个 SelectionKey,通过调用(使用调试器)其interestOps() 方法,返回值为 1
给定 SelectableChannel c 及其 SelectionKey k,k.isWritable() 返回 channel 是否准备好接受对 write() 的调用。 但是,如果 chann
我一直致力于 Java NIO 通信并阅读有关此的各种文章。该文档说我可以“或”我感兴趣的操作。但是,我还没有看到一个例子 channel.register(selector,SelectionKey
我正在关注this tutorial关于 Java NIO。我找到了似乎正确的 java 文件 Here 。我已经调整了代码以在单个端口而不是多个端口上运行,并且只是将数据输出到屏幕而不是将其回显给客
当 SelectionKey 被取消并且下一个选择操作从键集中删除键时,是否释放了对键附件中存储的任何内容的引用? 只要没有对附加的对象进行任何其他引用,这就意味着车库收集会删除附件。 我说的对吗?
我有一个关于从 SocketChannel 读取数据的问题。假设我们有这样的东西: SelectionKey key = //; ByteBuffer b = ByteBuffer.allocateD
据我了解,服务器套接字 channel 注册为监听接受,当接受时, channel 注册为读取,一旦读取,它就注册为写入,这是通过使用interestOps方法将相关键添加到SelectionKey的
我正在使用 Java NIO 用 Java 编写一个聊天服务器。服务器毫无问题地接受连接,但任何时候 select() 在第一个客户端之后返回 > 0 时,服务器套接字始终位于选定的键集中,即使没
我见过很多JavaNio的例子。他们都在选择器线程中设置了SelectionKey的interestOps。 他们为什么这么做?在选择器线程之外的其他线程中设置SelectionKey的interes
SelectionKey 是什么意思?实例调用 interestOps(0) ?0 不是 SelectionKey 中定义的枚举值。 interestOps(0) 的作用是什么? 最佳答案 有四种操作
我的每个 SelectionKey 都需要有一个唯一的 ID。我可以使用 SelectionKeyImpl 中的一些内部 ID 吗?例如,我可以使用 FD,但我不相信每个 SelectionKey 都
我有一个方法可以打开连接、查询站点、获取页面数,然后使用 NIO 并发检索所有页面。第一个查询是使用 URLConnection 完成的,并且工作得很好。当我尝试使用 NIO 选择器和 channel
如何使 java.nio.channels.SelectionKey 对 NO opts 感兴趣? SelectionKey#cancel() 有可能,但不太好,因为它使 key 无用。 Select
现在我的服务器读取来自客户端的所有消息。现在它是一种单向通信。我想通过服务器向客户端发送消息。现在当 key 处于可读状态时服务器读取消息它没有变成可写状态我只想知道 key 何时变为可写状态。 最佳
key.cancel() 和 iterator.remove() 有什么区别?从迭代器中删除键不会也从选择器中删除键吗? 假设: ... SelectionKey key = (SelectionKe
我是一名优秀的程序员,十分优秀!