【发布时间】:2012-03-17 05:13:45
【问题描述】:
我正在构建一个 Android 应用程序,它有一个服务器来监听多个传入连接,并且还有多个传出连接。
我有 1 个主要活动和 2 个辅助类:服务器和客户端。它们都为多线程扩展了 ASyncTask。
我打算使用 Selector 来完成这项工作。因此,我计划将 SocketServerChannel 用于服务器类,同时为我的客户端类使用多个 SocketChannel。这些 Channel 将由 Selector 处理。
我的问题是,由于我使用的是 1 个单服务器和 ASyncTask,因此为我的 Server 类使用 SocketServerChannel 和 Selector 是否多余?还是我应该仍然使用它来管理多个传入连接?
编辑:我找到了另一种方法。这是非常低效的,但它可以完成工作。我只使用普通的 Sockets 和 ServerSockets,对于所有可能的传出连接,我创建了一个仅供一次性使用的新 Socket。这样,我就不必费心跟踪我的所有联系了。
【问题讨论】:
-
这取决于您计划一次处理多少个连接。
-
您需要一个 ServerSocket 或一个 ServerSocketChannel。那里没有冗余。你的问题还不清楚。
标签: java android sockets android-asynctask selector