cocoa層:是最上層的基於 objective-c 的 api,比如 url訪問,nsstream,bonjour,gamekit等,這是大多數情況下我們常用的 api。cocoa 層是基於 core foundation 實現的。
core foundation層:因為直接使用 socket 需要更多的程式設計工作,所以蘋果對 os 層的 socket 進行簡單的封裝以簡化程式設計任務。該層提供了 cfnetwork 和 cfnetservices,其中 cfnetwork 又是基於 cfstream 和 cfsocket。
os層:最底層的 bsd socket 提供了對網路程式設計最大程度的控制,但是程式設計工作也是最多的。因此,蘋果建議我們使用 core foundation 及以上層的 api 進行程式設計。
cfnetwork
cfnetwork位於底層,但高效地處理協議棧的操作。bsd套接字提供了一些標準物件來方便操作,如與ftp和http伺服器通訊,解析dns主機位址。而cfnetwork就是以bsd套接字為基礎。類似,一些cocoa類,如nsurl,使用標準網路協議與伺服器通訊,就是以cfnetwork為基礎。除此之外,webkit是一些cocoa類,顯示視窗中的網路內容。而nsurl和webkit都是高層之上,要自行處理網路協議。
下圖是cfnetwork框架與core foundation框架的結構圖:
使用ios sdk中的http網路請求api,相當的複雜,呼叫很繁瑣,asihttprequest就是乙個對cfnetwork api進行了封裝,並且使用起來非常簡單的一套api,用objective-c編寫,可以很好的應用在mac os x系統和ios平台的應用程式中。asihttprequest適用於基本的http請求,和基於rest的服務之間的互動。
asihttprequest功能很強大,主要特色如下:
ios網路程式設計
一 確認網路環境3g wifi 1.新增源 檔案和framework 開發web等網路應用程式的時候,需要確認網路環境,連線情況等資訊。如果沒有處理它們,是不會通過 使用reachability 只須將該例程中的 reachability.h 和 reachability.m 拷貝到你的工程中。如下...
ios網路程式設計
一 確認網路環境3g wifi 1.新增源 檔案和framework 開發web等網路應用程式的時候,需要確認網路環境,連線情況等資訊。如果沒有處理它們,是不會通過 使用reachability 只須將該例程中的 reachability.h 和 reachability.m 拷貝到你的工程中。如下...
ios網路程式設計
一 確認網路環境3g wifi 1.新增源 檔案和framework 開發web等網路應用程式的時候,需要確認網路環境,連線情況等資訊。如果沒有處理它們,是不會通過 使用reachability 只須將該例程中的 reachability.h 和 reachability.m 拷貝到你的工程中。如下...