認識Socket
Socket是 客戶端 與 服務器鏈接的一個通道. 當客戶端向服務器發出請求,或者服務器響應客戶端,返回給客戶端的時候 都需要一個通道來傳輸 這個通道就是 Socket.哈哈你們可以理解為"輸卵管"
那么客戶端發送請求->到服務器 服務器多了去了 哪一個啊?
所以出現了這個東西 叫"IP地址" 輸入不同IP地址(百度,騰訊之類).
其實客戶端 不是直接和服務器通訊的, 大家都知道HTTP 請求 , 對客戶端發送一個HTTP 請求 這里服務器需要接受這個請求 那么服務器里的一個東西 叫
"Web應用程序"來接受客戶端發來HTTP請求 (提供HTTP請求).
如果難理解 你們可以把百度服務器當成一個超大型的電腦 , 那么客戶端 需求在這個大電腦里面的東西. 所以把 "Web應用程序"可以看成 電腦里的普通"應用程序".
這就比較好理解 其實百度數據庫 里有"數據庫應用程序"(MySQL
)如果你是學iOS 狗腿子出身 那你說不定不知道啥叫MySQL 那你總該知道啥叫Sqlite, 存儲本地數據庫的一個東東. 那么服務器當然也要存儲一個超級超級大的數據 他們就用的MySQL(例如用戶名密碼傳到服務器存儲 都是 用它存的)
剛才 介紹了倆個 數據庫應用程序 一個是"Web應用程序" 一個是"數據庫應用程序". 那么 這倆東西 是相同等級的 不同程序. 那么 就喲個東西 可以標識他們 這個就叫做"端口" 不同端口,代表不同的應用程序.
第二個東東TCP(傳輸控制協議)
是建立連接的東東 ,舉例 假如客戶端要發一個HTTP請求 那么怎么建立這個Socket 對 "TCP" 是 建立Socket的 建立方式 .你用TCP(傳輸協議)去傳輸她的特點:
1.傳輸數據 不是限制喲
2.建立Socket管道之前需要"三次握手" 舉例子哈: 看仔細了 第一步我撥打了電話 ,第二部:對方接聽了電話 說了句"喂". 第三部 我聽到了 然后 跟他說"我是XXX" 那么ok 你的通話成功, Socket也是一樣的, 三次握手驗證成功那么ok 你可以通訊了(XMPP就是這么做到滴) 所以需要做三次這樣的繁瑣驗證 因此她的傳輸是可靠地
3. 必須建立連接(所以每次都要三次握手) 效率會低.
UDP(用戶數據包協議)
記住他和TCP 是等價的也是傳輸方式 但是他不需要連接管道, "將數據和數據源(服務器IP地址)和目的(你的IP)封裝成數據包 傳輸 .
它的傳輸特點:
1不需要連接 因此傳輸數據不可靠(可能中斷)
2.由于不需要建立連接 她的速度快
3 數據包大小限制在64k 所以可以稱時時通訊 每時每刻都在傳輸 所以可以吧UDP 傳輸 理解為直播 . 為啥要限制那么小(64k)這樣如果傳200M得數據包 你要是斷了 你這200M不就廢了?.
還不明白UDP 和TCP? 假如你要跟你老婆 買禮物 你咋送過去?
你是飛鴿傳書 還是找快遞公司啊 隨你. 這倆種方式 就是 UDP和TCP.(要我我就選飛鴿傳書 因為這樣比較浪漫).