Java非阻塞客户端

Java非阻塞客户端,java,Java,我有一个关于非阻塞套接字的问题:例如,我了解如何为写/读事件注册两个socketchannel 但这样的事件是什么样子的呢?如果我想在SocketChannel1上写入一些数据,例如,当我向服务器按下按钮时,我该怎么做 我发现的所有示例都只涉及套接字的注册,如下所示: 您好 Flo我将查看示例目录下JDK附带的示例 如果使用非阻塞IO,则应等到从套接字获得写操作后再执行写操作。在等待时,可以缓冲数据。但是,很少需要这样做,因为只有当套接字的写入缓冲区已满时才需要这样做,而这种情况不应该经常发生

我有一个关于非阻塞套接字的问题:例如,我了解如何为写/读事件注册两个socketchannel

但这样的事件是什么样子的呢?如果我想在SocketChannel1上写入一些数据,例如,当我向服务器按下按钮时,我该怎么做

我发现的所有示例都只涉及套接字的注册,如下所示:

您好


Flo

我将查看示例目录下JDK附带的示例

如果使用非阻塞IO,则应等到从套接字获得写操作后再执行写操作。在等待时,可以缓冲数据。但是,很少需要这样做,因为只有当套接字的写入缓冲区已满时才需要这样做,而这种情况不应该经常发生,如果这种情况持续很长一段时间,您可能会认为您的消费速度较慢,并关闭连接


就我个人而言,我不会建议您直接使用非阻塞NIO,除非您非常了解正在发生的事情。相反,我建议您使用像Netty这样的库,它将为您处理所有边缘案例。或者,您可以使用阻塞NIO,它更简单,对于少量连接可以更快

好的,谢谢。到目前为止,我想我已经理解了非阻塞NIO,我只是想知道如何使用特定的socketChannel来编写特定的字节数组?