qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          iOS項目開發之Socket編程

           有一段時間沒有認真總結和寫博客了
            前段時間找工作、進入工作階段。比較少靜下來認真總結,現在靜下心來總結一下最近的一些心得
            前言
            AsyncSocket介紹
            AsyncSocket詳解
            AsyncSocket示例
            一、前言
            公司的項目用到了Socket編程,之前在學習的過程當中,用到的更多的還是http請求的方式。但是既然用到了就必須學習一下,所以就在網上找一些例子,然后想自己寫一個demo。可是發現很多寫iOS Socket的博客并沒有很詳細的說明,也可能是大神們覺得其他東西都淺顯易懂。
            自己專研了一下,將自己的一些理解總結出來,一方面整理自己的學習思路,另一方面,為一些和我有同樣困惑的小伙伴們,稍做指引。
            二、AsyncSocket介紹
            1)iOS中Socket編程的方式有哪些?
            -BSD Socket
            BSD Socket 是UNIX系統中通用的網絡接口,它不僅支持各種不同的網絡類型,而且也是一種內部進程之間的通信機制。而iOS系統其實本質就是UNIX,所以可以用,但是比較復雜。
            -CFSocket
            CFSocket是蘋果提供給我們的使用Socket的方式,但是用起來還是會不太順手。當然想使用的話,可以細細研究一下。
            -AsyncSocket
            這次博客的主講內容,也是我們在開發項目中經常會用到的。
            2)為什么選擇AsyncSocket?
            iphone的CFNetwork編程比較艱深。使用AsyncSocket開源庫來開發相對較簡單,幫助我們封裝了很多東西。
            三、AsyncSocket詳解
            1??說明
            在我們開發當中,我們主要的任務是開發客戶端。所以詳解里主要將客戶端的整個連接建立過程,以及在說明時候回調哪些函數。在后面的示例代碼中,也會給出服務器端的簡單開發。
            2??過程詳解
            1.建立連接
            - (int)connectServer:(NSString *)hostIP port:(int)hostPort
            2.連接成功后,會回調的函數
            - (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port
            3.發送數據
            - (void)writeData:(NSData *)data withTimeout:(NSTimeInterval)timeout tag:(long)tag;
            4.接受數據
            -(void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
            5.斷開連接
            - (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err
            - (void)onSocketDidDisconnect:(AsyncSocket *)sock
            主要就是上述的幾個方法,只是說在真正開發當中,很可能我們在收發數據的時候,我們收發的數據并不僅僅是一個字符串包裝成NSData即可,我們很可能會發送結構體等類型,這個時候我們就需要和服務器端的人員協作來開發:定義怎樣的結構體。

          posted on 2014-08-04 09:55 順其自然EVO 閱讀(3779) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2014年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 偏关县| 沾化县| 海阳市| 阜阳市| 云南省| 连云港市| 天等县| 潞城市| 新干县| 大悟县| 武夷山市| 若尔盖县| 尼木县| 腾冲县| 四子王旗| 德钦县| 贺州市| 长子县| 义乌市| 洪洞县| 蒲城县| 乌拉特前旗| 措美县| 五原县| 沈丘县| 崇信县| 台北市| 佛教| 辽中县| 阳江市| 师宗县| 湖南省| 永定县| 商水县| 潍坊市| 黔东| 兴化市| 收藏| 和硕县| 马山县| 邹平县|