当前位置:  开发笔记 > 编程语言 > 正文

Java nio,检查通道是否准备好进行读,写

如何解决《Javanio,检查通道是否准备好进行读,写》经验,为你挑选了1个好方法。

而不是以通常的方式使用选择器,对于每个就绪通道,可​​以确定并发送消息,我想选择当前准备好的连接并在那里发送消息.

据推测,这可以通过将所有通道投入选择器进行读取并将它们标记为准备好进行读取(如果它们出来),然后执行相同的写入,然后从我已标记为准备好的那些中进行选择来完成.

这是一个好主意,有没有更好的方法来做到这一点,我应该注意什么?例如,Rox教程指出"如果你试图混合OP READ和OP WRITE,你很快就会遇到麻烦.如果你这样做,Sun Windows实现就会陷入僵局." 这里有类似的陷阱吗?实施的最佳方式是什么:

boolean isReadyForRead(SocketChannel c);
boolean isReadyForWrite(SocketChannel c);

Malaxeur.. 6

当选择器唤醒时,您应该使用SelectionKey来验证套接字是否已准备好进行读取或写入.

这是一篇关于编写NIO服务器和客户端的非常有用的教程http://rox-xmlrpc.sourceforge.net/niotut/



1> Malaxeur..:

当选择器唤醒时,您应该使用SelectionKey来验证套接字是否已准备好进行读取或写入.

这是一篇关于编写NIO服务器和客户端的非常有用的教程http://rox-xmlrpc.sourceforge.net/niotut/

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有