通過在服務器端寫入簡單的System.out.println(),消息將發送給所有客戶端。 但是有沒有辦法讓一個客戶端的地址嵌入到一個java函數 中,該函數可以識別服務器正在向該特定客戶端發送消息?服務器如何與客戶機 - 服務器系統中的特定客戶機進行通信?
回答
這可能需要多一點的信息才能具體,但我會嘗試與它一起運行。
因此,如果您有一臺服務器維護已連接的客戶端列表,則可以在連接到服務器時爲每個客戶端理想地標記某種類型的ID。
例如,假設您有一臺管理某種數據並且有兩種類型的客戶端可以連接的服務器:管理員和客戶。
現在,當客戶端連接時,您可以設置服務器,以便它詢問用戶它們是什麼,並且可能使用登錄驗證。繼續您可以將所有類型放入唯一列表中,然後分別向這些列表進行廣播。
此外,由於您可以控制服務器和客戶端應用程序。您可以爲每個連接並存儲在列表中的用戶生成一個隨機的ID號/標記/內容。然後,如果服務器想要發送一個唯一的客戶端消息,則只需搜索該用戶套接字/連接的列表(或hashmap)並向它們廣播即可。
我知道這個答案似乎有點含糊,但提供的信息是這樣的。
謝謝。這真是我需要的提示。我所有的客戶都有一個ID。因此,舉例來說,如果在i = 1(我從0變化到number_of_clients)的循環內向客戶端號碼「1」發送消息,我會將消息發送到客戶端1還是發送給所有客戶端? –
所以如果你相信你會不斷地使用服務器發送消息給一個客戶端,我會考慮組織客戶端,把它們編入一個基於它們標籤的數據結構中。特別是對於你提到的for-loop,只要你添加if(clientToMessage == clientID)的條件來發送你應該沒問題,我也會在找到你的客戶端時中斷for循環。 我提到的數據結構將允許您搜索客戶端對象,並在它上面設置特定的調用SEND消息。只是我的想法。 – Acludia
- 1. 通過互聯網進行客戶機/服務器通信
- 2. TCP客戶機/服務器
- 3. Telnet服務器如何與客戶端進行通信?
- 4. 進程間通信:一臺服務器和多臺客戶機
- 5. 與java中的服務器和客戶端websockets進行通信
- 6. 客戶端服務器系統中退避機制的模式
- 7. 如何在Android中進行客戶端服務器通信?
- 8. 通過Dotnet客戶端與Java服務器進行Https通信
- 9. 通過XML與服務器和Android客戶端進行通信
- 10. Java中的客戶機服務器通信
- 11. 客戶機服務器通信中的校驗和代碼
- 12. Java中的網絡通信選項(客戶機/服務器)
- 13. Python中的客戶機 - 服務器通信
- 14. Java服務器和Android手機之間的客戶端/服務器通信
- 15. 的Java通信客戶端/服務器
- 16. orientdb客戶端與orientdb服務器進行通信
- 17. C99客戶端與Java服務器進行通信
- 18. 客戶端通過服務器到特定的客戶端通信
- 19. 用Java設計客戶機/服務器消息傳遞系統
- 20. 客戶機/服務器和瀏覽器/服務器
- 21. 構建不基於web服務的客戶機 - 服務器系統
- 22. Java TCP客戶機/服務器
- 23. 瘦客戶機服務器配置
- 24. 客戶機/服務器C連接
- 25. 客戶機/服務器編程
- 26. Java RTSP客戶機/服務器庫
- 27. C客戶機/服務器問題
- 28. Perl客戶機/服務器套接字
- 29. 印TCP客戶機/服務器
- 30. 客戶機/服務器設計模式
System.out.println()在服務器控制檯而不是客戶端上打印。 – Max