簡體   English   中英

進行客戶端-服務器聊天-將客戶端連接到客戶端時遇到問題

[英]Making a client-server chat - running into issues with connecting client to client

我正在嘗試學習如何制作多客戶端聊天程序。 我正在遵循有關自定義網絡的Oracle教程,但並不是我真正想要的。 到目前為止,我還沒有共享的代碼,所有代碼都是從Oracle教程復制而來的,我認為將其粘貼在此處將構成版權侵權(??)。

鏈接位於: http : //docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html+

客戶端代碼鏈接: http : //docs.oracle.com/javase/tutorial/displayCode.html? code= http : //docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockClient.java

無論如何,我在服務器客戶端工作,服務器告訴敲打笑話,客戶端讀取並打印,然后用戶答復,依此類推。 我將如何開始對其進行編輯以使客戶端直接與其他客戶端對話?

即時通訊很抱歉,我完全沒有網絡背景。 如果有人可以引導我找到更適合我目標的信息來源,我將不勝感激。

就像在Knock-Knock示例中一樣,每個客戶端都連接到服務器,但是它們並不相互直接連接。

有一種解決方案,可以設置轉發服務器:為每個客戶端設置一個ID,然后客戶端使用ID來標識其通話伙伴。

為此,您必須將客戶端修改為服務器數據格式,從純字符串更改為類似(String,Id)的元組。 並且,當服務器接收到數據時,它將解析出id,獲取相應的客戶端套接字,然后寫入數據。

由於您需要某種“進程間通信”基礎結構來允許客戶端到客戶端通信(可能通過服務器編排的套接字?),因此所需的復雜性水平上升了一個台階。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM