所以我一直在爲這個模板服務器建立一個小型服務器來實踐。 http://www.kieser.net/linux/java_server.html發送到所有功能。多線程服務器
我得到了工作客戶端,但我很難弄清楚如何從客戶端發送消息到服務器,並從該線程發送到所有其他客戶端而不是隻有一個客戶端。
任何人都可以闡明我如何去做這件事嗎?
所以我一直在爲這個模板服務器建立一個小型服務器來實踐。 http://www.kieser.net/linux/java_server.html發送到所有功能。多線程服務器
我得到了工作客戶端,但我很難弄清楚如何從客戶端發送消息到服務器,並從該線程發送到所有其他客戶端而不是隻有一個客戶端。
任何人都可以闡明我如何去做這件事嗎?
你嘗試過這麼遠嗎?當我做了一件類似的事情時,我保留了一個已創建的「doComs」對象列表,然後在整個列表中調用方法。從列表中刪除doComs對象時通常會在單獨的線程上發生 – 2012-07-11 09:02:45
我嘗試使用可以訪問主類並通過連接到最後一個doCom創建的新輸出流來發送內容的函數。但是這導致第一個客戶端發送給任何客戶端,但它不會接收來自其他客戶端的數據。我喜歡你的doComs列表。你能詳細解釋一下嗎? – Smallbro 2012-07-11 09:08:48
ok ..所以在服務器中,當你創建一個新的doCom對象時,它將它存儲到列表中。 (但現在當存儲/刪除它時,其他線程可能會使用該列表以便避免併發修改異常,您將需要鎖定列表)。當你在doCom中遇到異常時,你需要從列表中刪除doCom對象,因爲異常會暗示你不能與那個channed溝通 – 2012-07-11 09:26:36