2012-03-17 52 views
0

我正在构建一个Android应用程序,它有一个侦听多个传入连接的服务器,并且也有多个传出连接。如果我有1个服务器和多个客户端,是否需要SocketServerChannel?

我有1个主要活动和2个辅助类:服务器和客户端。它们都扩展了ASyncTask以实现多线程。

我打算使用Selector来完成这项工作。所以,我打算为服务器类使用SocketServerChannel,同时为我的客户端类使用多个SocketChannel。这些通道将由选择器处理。

我的问题是,因为我使用的是单个服务器和ASyncTask,所以在我的服务器类中使用SocketServerChannel和Selector是多余的?还是应该使用它来管理多个传入连接?

编辑:我找到了另一种方法来做到这一点。这是非常低效的,但它完成了工作。我只使用普通的套接字和服务器套接字,并为所有可能的传出连接,我创建一个新的套接字,只有一次性使用。这样,我不必费心跟踪所有的连接。

+0

这取决于您计划一次处理多少个连接。 – Jeffrey 2012-03-17 05:15:39

+0

您需要ServerSocket或ServerSocketChannel。那里没有冗余。你的问题还不清楚。 – EJP 2012-03-17 05:17:23

回答

1

Java.nio通常比使用java.io更复杂,并且在速度和负载方面必然更优化。

相关问题