iOS中級 (傻瓜學Socket與XMPP)(1-1)

認識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.(要我我就選飛鴿傳書 因為這樣比較浪漫).

這期出的(XMMP和Socket)就比較長了 估計要寫好幾次 請大家時時關注我 謝謝. 今天講的理論知識 對以后的XMPP 和網絡數據 有很大幫助 希望大家好好看看 后續有更新

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.1 TCP/IP協議組 TCP/IP協議(傳輸控制協議)由網絡層的IP協議和傳輸層的TCP協議組成 IP層負責...
    F麥子閱讀 2,809評論 0 25
  • 轉自 TCP/IP,Http,Socket,XMPP的區別網絡由下往上分為 物理層、數據鏈路層、網絡層、傳輸層、會...
    ZMJun閱讀 1,373評論 1 10
  • 上一章:《亂世紅顏之長寧賦》:第二章 其實長寧并不知道,在她離開后山的那瞬間正巧被靜慧師太瞧見了,靜慧師太當時心里...
    官楚涵閱讀 312評論 0 2
  • 清風徐來,你在柳樹蔭下長身而立; 衣衫翩翩,我在你的回眸一笑里如沐春風。 我們在時光里慢慢老去,笑容里,淚光里,都...
    賣報的小胡瓜閱讀 374評論 0 0
  • 選擇運營也是誤打誤撞,希望可以在這里學到很多,涵蓋的面也非常廣,所以希望多提升一點,多學習更你的知識,和干貨。 內...
    鄰居郝大爺閱讀 208評論 0 0