在IOS開發中,網絡請求連接每每是HTTP請求,可是有些需求比較特殊,須要保持持續鏈接,就須要用到Socket了。html
另外在遊戲開發中,經常會用到Socket鏈接,由於http請求數據每每須要用戶主動請求,好比下拉刷新的時候請求一次數據,可是遊戲開發中,不少遊戲相關的數據是須要實時自動的更新,而且多設備數據同步,舉個簡單的例子,你和你的遊戲好友經過聯網聯合玩雷電戰機遊戲,你兩的遊戲經驗值生命值須要在大家各自的手機設備上同步實時的更新。這個就須要Socket長鏈接能夠作到。網絡
學習來自《iOS的Sock開發基礎》,該篇文章對三次握手講的很詳細哦,另外還講解了四次揮手,就是鏈接的拆除。框架
Socket簡介:socket
Socket是下面圖中應用層和運輸層中間的軟件抽象層,它是一組接口:學習
TCP和UDP的區別:設計
TCP:面向鏈接、傳輸可靠(保證數據正確性,保證數據順序)、用於傳輸大量數據(流模式)、速度慢,創建鏈接須要開銷較多(時間,系統資源)。3d
UDP:面向非鏈接、傳輸不可靠、用於傳輸少許數據(數據包模式)、速度快。code
TCP和UDP的兩種設計框架:htm