聊天工具和咱們的平常生活愈來愈密不可分,看着 騰訊
大佬的兩款工具 QQ
,We Chat
獨步江湖, 小馬哥
每天在家無聊的數錢玩nginx
小六前幾天在某個地方採藥,不當心掉入了一個山洞中,昏迷後醒來 發現石壁上刻着九陽神功 其中有一章專門講如何製做聊天工具的git
C-S 模式 Client-Server 模式
也叫 客戶端-服務器模式 客戶端和服務器之間約定好各類協議,客戶端輸入指令 服務器返回計算結果github
TCP 百度百科服務器
UDP 百度百科網絡
基礎介紹完畢,如何搭建本身的聊天的工具併發
通過前面的介紹 目前客戶端和服務器之間呈現如圖所示的一種狀況 而兩個客戶端是沒法直接通訊的 客戶端不在公網上
工具
可是 服務器在公網上 IP PORT 都是固定的 客戶端上的應用能夠在任何地方連接到服務器 給服務器發送信息post
基於上面客戶端能夠隨時連接到服務器(C/S結構
)3d
服務器上有和各個客戶端鏈接的文件描述符(OS->fd
)code
所以客戶端選擇服務器上的其餘fd
併發送信息給服務器
服務器接收到信息後根據客戶端選擇的 fd
將信息轉發到對應的客戶端 完成了用戶A 和用戶B 之間的通訊
Q: 如何實現羣組聊天
A: 無非多選擇幾個fd