【发布时间】:2012-07-10 20:34:31
【问题描述】:
所以我一直在这个模板服务器上构建一个小型服务器来练习。 http://www.kieser.net/linux/java_server.html
我有工作的客户端,但我很难弄清楚如何将消息从客户端发送到服务器,然后从该线程发送到所有其他客户端,而不仅仅是一个客户端。
任何人都可以解释一下我该如何解决这个问题吗?
【问题讨论】:
-
到目前为止您尝试过什么?当我做类似的事情时,我保留了一个“doComs”对象的列表,这些对象被创建,然后只调用整个列表中的方法。从列表中删除 doComs 对象时要小心,因为这通常会在单独的线程上发生
-
我确实尝试过创建一个具有访问主类的函数的类,并通过连接到最后一个创建的 doCom 的新输出流发送内容。但这导致第一个客户端发送给它之后的任何客户端,但它不会从之后创建的其他任何客户端接收数据。我喜欢你对 doComs 列表的想法。你能详细说明一下删除它们吗?
-
ok .. 所以在服务器中,当您创建一个新的 doCom 对象时,将其存储到一个列表中。 (但现在在存储/删除它时,其他线程可能正在使用该列表,因此为了避免并发修改异常,您需要锁定该列表)。当您在 doCom 中遇到异常时,您需要从列表中删除 doCom 对象,因为异常意味着您无法与该通道进行通信
标签: java networking