【问题标题】:Do I need SocketServerChannel if I am having 1 server and multiple clients?如果我有 1 个服务器和多个客户端,我需要 SocketServerChannel 吗?
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多