【问题标题】:Send to all function. Multithreaded server发送到所有功能。多线程服务器
【发布时间】:2012-07-10 20:34:31
【问题描述】:

所以我一直在这个模板服务器上构建一个小型服务器来练习。 http://www.kieser.net/linux/java_server.html

我有工作的客户端,但我很难弄清楚如何将消息从客户端发送到服务器,然后从该线程发送到所有其他客户端,而不仅仅是一个客户端。

任何人都可以解释一下我该如何解决这个问题吗?

【问题讨论】:

  • 到目前为止您尝试过什么?当我做类似的事情时,我保留了一个“doComs”对象的列表,这些对象被创建,然后只调用整个列表中的方法。从列表中删除 doComs 对象时要小心,因为这通常会在单独的线程上发生
  • 我确实尝试过创建一个具有访问主类的函数的类,并通过连接到最后一个创建的 doCom 的新输出流发送内容。但这导致第一个客户端发送给它之后的任何客户端,但它不会从之后创建的其他任何客户端接收数据。我喜欢你对 doComs 列表的想法。你能详细说明一下删除它们吗?
  • ok .. 所以在服务器中,当您创建一个新的 doCom 对象时,将其存储到一个列表中。 (但现在在存储/删除它时,其他线程可能正在使用该列表,因此为了避免并发修改异常,您需要锁定该列表)。当您在 doCom 中遇到异常时,您需要从列表中删除 doCom 对象,因为异常意味着您无法与该通道进行通信

标签: java networking


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    相关资源
    最近更新 更多