gpt4 book ai didi

在Android中,当OP_WRITE存在时,Java nio OP_READ不执行?

转载 作者:行者123 更新时间:2023-12-01 23:58:58 25 4
gpt4 key购买 nike

我正在尝试使用 NIO 在 Android 中编写服务器。在我的 ServerChannel 被接受后,我已经注册了 OP_READ、OP_WRITE。

然而,有线的事情是......在 while 循环中,在我这样做之后:

SelectionKey key = (SelectionKey) iterator.next();
iterator.remove();

在:

if(key.isReadable()){
} else if(key.isWritable()){

似乎 isReadable 从未返回 true。

我的客户端代码是两个线程,一个线程用于读取,另一个线程用于写入。我想知道为什么会这样..?我认为如果有人能给我一些有关 Java NIO 中客户端处理的引用,那将会很有帮助。

非常感谢,

最佳答案

您通常不应注册 OP_WRITE。它几乎总是准备就绪。仅当收到短写入结果时才应使用它,这表明发送缓冲区已满。另一方面,OP_READ 仅当发送缓冲区中有数据时才准备就绪。您的回答中没有任何内容表明在有问题的那一刻存在。我想知道你是否在精神上没有这些状态。

关于在Android中,当OP_WRITE存在时,Java nio OP_READ不执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15193904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com