2012-04-02 76 views
1

我對Java相當陌生,我試圖構建一個非常基本的Java中繼服務器,它將客戶端的消息發送給所有連接的客戶端。我已經想出瞭如何執行線程以允許多個連接,但我無法確定如何將傳入消息回顯到所有連接的套接字線程。如何向Java中的所有線程客戶端發送數據?

這裏是我的Main.java來源:

http://pastebin.com/vVewfv3s

這裏是我的SocketThread.java來源:

http://pastebin.com/yHA2BcUi

基本上,我想知道我目前最簡單的方法編碼設置能夠將來自一個客戶端的傳入消息發送到所有其他客戶端。我目前使用Windows telnet客戶端作爲使用此服務器的客戶端。

回答

1

一個簡單的方法是保存一個客戶端集合,比如地圖或集合。要向所有客戶端發送消息,您需要遍歷客戶端的鏈接列表,並在每個客戶端的發送隊列上引用該消息的引用。當然,您需要通過適當的線程間同步來保護這些結構。

+0

我不太清楚該怎麼做。我對Java的知識很新,但我知道基礎知識。我現在更多地學習所有的函數和庫。你能告訴我一些如何做你所談論的代碼或例子嗎?謝謝您的幫助。 – zgillis 2012-04-02 02:23:25

+0

將「多線程Java服務器」打入您喜愛的搜索引擎。然後,將每個客戶端添加到共享映射或集合。 – 2012-04-02 02:26:43

+0

謝謝,我想我找到了一個體面的:http://carfield.com.hk/document/java/tutorial/socket_chat.pdf – zgillis 2012-04-02 05:13:25

相關問題