如何使用Java向所有线程客户端发送数据?

时间:2012-04-02 00:27:51

标签: java multithreading sockets chat serversocket

我对Java很新,我正在尝试构建一个非常基本的Java Relay服务器,它将消息从客户端发送到所有连接的客户端。我已经想出如何进行线程以允许多个连接,但我无法弄清楚如何将传入的消息回显给所有连接的套接字线程。

这是我的Main.java来源:

http://pastebin.com/vVewfv3s

这是我的SocketThread.java来源:

http://pastebin.com/yHA2BcUi

基本上,我想知道当前编码设置的最简单方法是能够将传入消息从一个客户端发送到所有其他客户端。我目前正在使用Windows telnet客户端作为使用此服务器的客户端。

1 个答案:

答案 0 :(得分:1)

一个简单的方法是保留一组客户端,比如地图或集合。要向所有客户端发送消息,您将遍历客户端的链接列表,并在每个客户端的发送队列上引用该消息。当然,您需要通过适当的线程间同步来保护这些结构。