首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA NIO Selector中的查询?

JAVA NIO Selector中的查询?
EN

Stack Overflow用户
提问于 2012-10-03 15:34:31
回答 1查看 290关注 0票数 0

我正在开发一个点对点应用程序。因为每个对等点都有一个服务器套接字通道和一个套接字通道。现在我需要两个选择器来处理服务器套接字通道和套接字通道的连接,...

SelectorProvider似乎是一个单独的类,它只支持选择器的一个实例。它不能同时用于套接字通道和..

有没有办法在一个程序的单个实例中使用两个选择器。

代码语言:javascript
复制
private ServerSocketChannel svrScktChnl;
private SocketChannel socketChannel;

两个选择器

代码语言:javascript
复制
public Selector selector=null;
public Selector playerSelector=null;

我正在尝试分别初始化这些选择器,一个用于服务器套接字通道,另一个用于套接字通道。

但是我不能再次初始化,因为它抛出了一个错误,..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-03 17:51:37

现在我需要两个选择器来处理服务器套接字通道和套接字通道的连接,...

不,你不需要。你可以使用相同的选择器来处理它们,除非由于某些原因你想在不同的线程中处理它们,这实际上违反了NIO所代表的一切。

SelectorProvider似乎是一个单例类

假。SelectorProvider.provider()返回一个单例,但您不需要使用它:到处都有让您指定自己的提供者的API。并不是说它相关,因为:

,并且它只支持选择器的单个实例

假。我不知道你说的“fices”是什么意思,但是每次你调用SelectorProvider.openSelector()都会返回一个新的Selector,你可以自己发现它,而不是在这里张贴一个问题并可能永远等待一个可能不正确的答案的奢侈技巧,即使提供者本身是一个单例,但它不是。

..它不能同时用于套接字通道和..

不是的。显然,您从未真正尝试过它。你需要明白,这是一门经验科学,你需要进行自己的实验。在网站上发布问题,然后坐着等待答案并不是对你或其他任何人的时间的有效利用,而且它也不会像你自己做工作那样迅速地提供正确的答案。

它抛出一个错误

你不能指望任何人只用那么少的信息就能帮助你。你会接受它作为客户的bug报告吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12703868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档