ios開發(fā)socket通訊數(shù)據(jù)包、讀取數(shù)據(jù)、心跳包

socket通訊目前用得比較多的有AsyncSocket與GCDAsyncSocket兩個(gè)類包。gcd可以將socket與隊(duì)列綁定,很多方法都已經(jīng)被作者封裝到協(xié)議里面了。

1、關(guān)于socket對象建議做成全局的對象,因?yàn)槊總€(gè)進(jìn)程都是連接一個(gè)socket,所以至于是單例還是全局變量看自己定義。

2、對于經(jīng)常說的心跳連接:如果不發(fā)數(shù)據(jù)的話,你不知道另一頭是不是斷了,這樣就可能會(huì)出現(xiàn)占用好多資源的情況,所以實(shí)踐里對keepalive的連接,是要隔一段時(shí)間就發(fā)一下數(shù)據(jù)看看另一頭有沒有反應(yīng)的,所以使用心跳包來判斷服務(wù)端是否還與自己保持連接。所以在做一些需要長時(shí)間連接的操作的時(shí)候最好定時(shí)給服務(wù)端發(fā)送一些數(shù)據(jù),這樣能準(zhǔn)確的判斷是否斷線

3、[self.socket readDataWithTimeout:30 tag:0];每次收到數(shù)據(jù)之后都要循環(huán)讀取數(shù)據(jù),防止數(shù)據(jù)丟失。關(guān)于tag還有一個(gè)好處就是可以根據(jù)業(yè)務(wù)邏輯進(jìn)行定義比如:tag:0=心跳包,tag:1=控制命令,tag:2=圖片,tag:3=視頻。。。

代碼就不貼了,有不懂的可以給我留言,其實(shí)資料很多,仔細(xì)看就能發(fā)現(xiàn)。socket通訊很容易入門,但是需要注意的細(xì)節(jié)還是很多。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載:http://www.cocoachina.com/ios/20170615/19529.html 參考:h...
    F麥子閱讀 4,136評論 3 2
  • http://my.oschina.net/u/2448717/blog/499784 1、AsyncSocket...
    戀熙閱讀 1,221評論 0 7
  • 前言 本文會(huì)用實(shí)例的方式,將iOS各種IM的方案都簡單的實(shí)現(xiàn)一遍。并且提供一些選型、實(shí)現(xiàn)細(xì)節(jié)以及優(yōu)化的建議。 注:...
    maTianHong閱讀 2,507評論 4 12
  • iPhone的標(biāo)準(zhǔn)推薦是CFNetwork 庫編程,其封裝好的開源庫是 cocoa AsyncSocket庫,用它...
    Ethan_Struggle閱讀 2,357評論 2 12
  • 傻笑練習(xí)1 幸福的人生 仰望天空45度角,流著口水,傻笑……哈哈! 我現(xiàn)在是最苗條的,瘦身成功,身材緊致,小蠻腰,...
    四王點(diǎn)菜閱讀 121評論 0 0

友情鏈接更多精彩內(nèi)容