我正在开发一个点对点应用程序。因为每个对等点都有一个服务器套接字通道和一个套接字通道。现在我需要两个选择器来处理服务器套接字通道和套接字通道的连接,...
SelectorProvider似乎是一个单独的类,它只支持选择器的一个实例。它不能同时用于套接字通道和..
有没有办法在一个程序的单个实例中使用两个选择器。
private ServerSocketChannel svrScktChnl;
private SocketChannel socketChannel;两个选择器
public Selector selector=null;
public Selector playerSelector=null;我正在尝试分别初始化这些选择器,一个用于服务器套接字通道,另一个用于套接字通道。
但是我不能再次初始化,因为它抛出了一个错误,..
发布于 2012-10-03 17:51:37
现在我需要两个选择器来处理服务器套接字通道和套接字通道的连接,...
不,你不需要。你可以使用相同的选择器来处理它们,除非由于某些原因你想在不同的线程中处理它们,这实际上违反了NIO所代表的一切。
SelectorProvider似乎是一个单例类
假。SelectorProvider.provider()返回一个单例,但您不需要使用它:到处都有让您指定自己的提供者的API。并不是说它相关,因为:
,并且它只支持选择器的单个实例
假。我不知道你说的“fices”是什么意思,但是每次你调用SelectorProvider.openSelector()都会返回一个新的Selector,你可以自己发现它,而不是在这里张贴一个问题并可能永远等待一个可能不正确的答案的奢侈技巧,即使提供者本身是一个单例,但它不是。
..它不能同时用于套接字通道和..
不是的。显然,您从未真正尝试过它。你需要明白,这是一门经验科学,你需要进行自己的实验。在网站上发布问题,然后坐着等待答案并不是对你或其他任何人的时间的有效利用,而且它也不会像你自己做工作那样迅速地提供正确的答案。
它抛出一个错误
你不能指望任何人只用那么少的信息就能帮助你。你会接受它作为客户的bug报告吗?
https://stackoverflow.com/questions/12703868
复制相似问题