我們用的QQ是怎樣實現通訊的

聊天工具便利了我們的生活,我們經常使用的QQ怎樣實現通訊的呢?

首先我們需要知道網絡裡的兩種協議,兩種通訊協議分別為UDP和TCP通常網絡之間的通訊都是由這兩個協議支持的,這兩種協議屬於傳輸層,它可以傳輸文件。

我們用的QQ是怎樣實現通訊的

UDP:首先UDP的傳輸效率很快,而且稍微安全一些,但是它不能保證數據是否成功傳輸,也就是說它只管傳輸不管到不到,如果在中途由於一些原因停止,也不會進行提醒。

TCP:TCP相對UDP的兩個優點都比較低,但是TCP會有三次握手來建立連接,彌補了UDP數據傳輸不穩定的缺點。

我們使用的QQ是用的UDP協議,因為QQ起初就是使用的UDP協議,QQ從開始運營一直到現在都沒有暫停過服務,所以協議是已經固定不可再調換的,QQ是通過服務器來彌補UDP傳輸不穩定的缺點的。我們使用的客戶端用來連接服務器,我們要發送的內容會上傳到服務器,以服務器作為介質來判斷消息是否到達。

QQ的服務器有消息記錄的功能,一般在手機端的儲存為6個月,有可能你發的數據在服務器端是永遠不會刪除的。畢竟公司企業比較大,你發表的言論隨時都可以提供調查。

QQ客戶端的代碼和服務端的代碼不同,客戶端有發送和接收功能但是QQ客戶端不綁定自身的ip地址,端口一般為1080。在服務端,有一個ip地址綁定,程序中有一個接聽循環,用來一直判斷是否有用戶發來信息,然後接收客戶端發來的信息,再根據需要傳送人的用戶名進行連接,QQ在啟動時會建立套接字,服務端會自動獲取到客戶端的ip地址,從而實現通訊。

QQ的文件傳輸,圖片傳輸原理是一樣的,都是基於UDP協議進行傳輸。


分享到:


相關文章: