我正在构建一个Android应用程序,它具有一个侦听多个传入连接的服务器,并且还有多个传出连接。
我有1个主要活动和2个帮助程序类:服务器和客户端。它们都扩展了ASyncTask以进行多线程处理。
我打算使用Selector来完成这项工作。因此,我计划将SocketServerChannel用于服务器类,同时为我的客户端类使用多个SocketChannel。这些频道将由选择器处理。
我的问题是,既然我使用的是单个服务器和ASyncTask,那么在我的Server类中使用SocketServerChannel和Selector是多余的吗?或者我还应该用它来管理多个传入连接吗?
编辑:我找到了另一种方法。这是非常低效的,但它完成了工作。我只使用普通的套接字和ServerSockets,对于所有可能的传出连接,我创建了一个只能一次性使用的新Socket。这样,我就不必费心跟踪我的所有联系。
答案 0 :(得分:1)
Java.nio通常比使用java.io更复杂,并且在速度和负载方面必然更优。