引用:http://blog.sina.com.cn/s/blog_9e2e84050101blqz.htmlhtml
騰訊QQ使用何種開發平臺?
騰訊QQ的開發分客戶端軟件和服務器端軟件兩部分。
客戶端採用 Microsoft Visual C++開發;
服務器端軟件採用Linux gcc開發 ;
數據庫採用MySql 數據庫。
騰訊QQ採用標準的TCP/IP協議爲通訊協議。
TCP/IP協議中又分爲TCP協議和UDP協議,TCP協議是面向鏈接的協議,它比較安全、穩定,可是效率不高,佔用資源較多。UDP協議是無鏈接方式的協議,它的效率高,速度快,佔資源少,可是其傳輸機制爲不可靠傳送,必須依靠輔助的算法來完成傳輸控制。QQ採用的通訊協議以UDP爲主,輔以TCP協議。因爲QQ的服務器設計容量是海量級的應用,一臺服務器要同時容納十幾萬的併發鏈接,所以服務器端只有採用UDP協議與客戶端進行通信才能保證這種超大規模的服務。
騰訊QQ客戶端之間的消息傳送也採用了UDP模式,這不一樣於國外的ICQ在客戶端之間採用TCP進行通信的模式。由於國內的網絡環境很是複雜,並且不少用戶採用的方式是經過代理服務器共享一條線路上網的方式,在這些複雜的狀況下,客戶端之間能彼此創建起來TCP鏈接的機率較小,嚴重影響傳送信息的效率。而UDP包可以穿透大部分的代理服務器,所以咱們在開發QQ的時候選擇了UDP做爲客戶之間的主要通訊協議,所以網友會以爲用QQ傳送信息要比ICQ及其它採用TCP協議的ICQ類軟件快。固然,UDP協議優勢突出,缺點也很明顯:UDP包的傳送是不可靠的傳輸,它不象TCP同樣有包重傳等機制,所以採用UDP協議的信息在傳送過程當中很容易丟失,這樣就須要輔助的算法實現包重傳機制以保證信息不會丟失,而QQ服務器的負荷很是重,所以在QQ 99b 0425以前咱們只是在客戶端到客戶端之間傳送消息時採用了這個輔助的機制,當消息在客戶間直接傳送沒法到達時就須要經過服務器來中轉,因爲服務器端在老版本的時候迫於負荷太重的壓力沒有對主動發往客戶端的信息進行傳輸控制,所以在老算法