一,網絡結構。
1,客戶端服務器網絡結構。
客戶端服務器網絡結構是一種主從網絡結構。服務器是被動的,有點像餐廳的服務員。而客戶端是主動的,像在餐廳吃飯的顧客。
2,對等網絡結構。
對等網絡也叫點對點網絡。每個節點之間是對等的。
對等網絡結構分布范圍比較小。通常在一間辦公室或一個家庭內,因此它非常適合iOS設備間的網絡通信,網線路鏈路層是由藍牙和WiFi實現。iOS SDK提供了這方面的API供開發者使用。
二,基于Socket的C/S結構網絡通信。
1,Socket概念。
Socket是網絡上的兩個程序,通過一個雙向的通信連接,實現數據的交換。這個雙向鏈路的一端稱為一個Socket.Socket通常用于實現客戶方和服務方的連接。Socket是TCP/ip協議的一個十分流行的編程接口,一個Socket由一個IP地址和一個端口號唯一確定。
我們把Socket編程叫做“低層次網絡編程”。
Socket采用TCP/IP協議模型。TCP/IP協議的傳輸層又有兩種傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據協議).TCP是基于連接的,而UDP是無連接的;TCP對系統資源的要求較多,而UDP少。TCP保證數據正確性而UDP可能丟包;TCP保證數據順序而UDP不保證。
2,Socket編程。
客戶端流程是先指定要通信的服務器IP地址,端口和采用的傳輸協議(TCP或UDP),向服務器發出連接請求,服務器有應答請求之后,就會建立連接,之后與服務器端是一樣的。
Socket編程是一種網絡編程的標準,客戶端和服務器端可以不受編程語言的限制,完全自由通信。客戶端可以是Object-C編寫的iOS程序,服務器端可以是java編寫的程序,通信雙方定義好數據交互格式就可以了。
3,實例:NSStream&CFStream實現TCP Socket服務器端。
4,實例:NSStream&CFStream實現TCP Socket客戶端。
三,Bonjour服務發現。
Socket有一個問題,需要指定服務器的端口和IP地址。在有些情況下,獲得服務器的這些信息是很困難的。蘋果公司開發了一種零配置發現協議,命名為Bonjour(法語“你好”),使我們的尖用不必指定服務器端口和IP地址就可以動態發現。
1,發布服務
2,解析服務
3,查找服務
4,實例:基于服務發現的Socket通信服務器端。
5,實例:基于服務發現的Socket 通信客戶端。
四,對等網絡結構。
對等網絡結構是蘋果公司的Ad Hoc網絡的一種,在小空間里構建無限網絡的解決方案。蘋果公司在Game Kit框架中提供了開發這種網絡的API。
1,使用Game Kit開發對等結構網絡應用。
在iOS3之后,蘋果公司提供了用于自己游戲中心開發的API,這就是Game Kit框架。在新發布的iOS6中,蘋果公司地Game Kit進行了比較大的調整。借助于Game Kit中的對等網絡,API不僅可以開發基于Ad Hoc的網絡游戲,也可以在其他類型的應用中使用這些API。
基于藍牙連接的對等網絡在數據傳輸是,傳輸的距離有限制,另外Game Kit對于傳輸的數據量也有一定的限制,數據量最大不能超過87KB,處于性能的考慮傳輸數據不要超過1000字節,如果超過,分割成幾個數據包傳輸。
2,實例:基于藍牙對等網絡通信。
參考資料:《iOS網絡編程與云端應用-最佳實踐》
新聞熱點
疑難解答