今天我們來**一下通訊群聊的實現,就像平常我們玩的qq群聊功能一樣,有多個賬號發訊息能互相接收到,其實這個資料傳輸的過程是在客戶端和伺服器間實現的。所以我們要先建立乙個伺服器端口。
public class chatserver
在資料傳輸之前,客戶端和伺服器有三次握手。
1.客戶端告訴伺服器自己要建立連線了
2.伺服器告訴客戶端自己收到了建立連線的請求
3.客戶端告訴伺服器自己收到伺服器的回應
此時客戶端與伺服器便建立了連線。
這裡用到accept()方法
socket client = server.accept();// 讓伺服器處於等待狀態,等待客戶機的連線
建立連線之後我們要開始發訊息啦,大致過程就是伺服器從客戶端獲得輸入流,再將輸入流轉化成輸出流輸出給客戶端,所以我們要建立輸入流和輸出流,這個我們可以在乙個chatpross的方法中實現
public void chatprocess() throws ioexception
實現群聊,建立乙個佇列當乙個客戶機連線時則新增乙個執行緒物件於佇列中,再將每個客戶機說的話用傳送訊息的方法傳送即可
public class chattool catch (ioexception e)
stlist.add(st);
} public static void sendm(user user,string meg) throws ioexception
chattool.sendm(this.us, "我下線了,拜拜");
this.closeme();
}
public void sendmesg(string meg) throws ioexception
關閉連線的方法
private void closeme() catch (ioexception e)
客戶端與伺服器端通訊
關係圖 傳送 邏輯管理器 處理邏輯傳送指令 指令解析管理器 根據協議xml解析指令成二進位制資料 把二進位制資料傳給伺服器 接收 伺服器傳送二進位制資料到客戶端 指令解析管理器 根據協議xml解析二進位制資料 根據解析資料對映到邏輯類來處理 2 1 3 20 2,2 21 1,1,2 指令名和指令名...
客戶端與伺服器程式通訊
一 通訊模型 目前主流的網路通訊模型有以下兩種 2 瀏覽器 伺服器結構 browser server,縮寫為b s,瘦客戶 典型的b s結構網路系統只要通過瀏覽器即可訪問,不需要在客戶端機安裝特定的軟體。二 通訊方式 1 tcp通訊 這種通訊方式是實現c s模式應用程式的主要方式。tcp是可靠的連線...
客戶端和伺服器之間通訊講解
原文 客戶端 能向伺服器傳送資訊,提出請求。伺服器 能接收客戶端發來的請求,並能傳送資料給客戶端以做出回應。從這裡可以看出,我們的電腦可以充當雙重角色。1 當我們用瀏覽器瀏覽網頁,要檢視某個檔案時,我們的電腦會發出請求給檔案伺服器,檔案伺服器收到請求並同意後,將檔案資料傳送到我們的電腦。此時,電腦充...