iOS開發之網絡編程之CocoaAsyncSocket

一,第三方框架介紹

在app開發過程中用的最多的是http/https(其實是用tcp/IP實現的),大部分功能是獲取數據,顯示數據,用戶主動請求的一對一模式,服務器不能主動的向app發送數據。tcp/IP是面向鏈接,穩定,數據流(無邊界)的,后面我們會根據這些特性來編寫代碼。常用的第三方框架有2種,一種基于NSRunloop,一種基于GCD,后面說的都是用基于NSRunloop的CocoaAsyncSocket.https://github.com/robbiehanson/CocoaAsyncSocket

二,項目中使用的接口及協議回調

項目中要用的的APi

1,- (id)initWithDelegate:(id)delegate;初始化并設置委托

2,- (BOOL)connectToHost:(NSString*)hostname onPort:(UInt16)port error:(NSError**)errPtr;根據ip及端口鏈接服務器;

3,- (void)writeData:(NSData*)data withTimeout:(NSTimeInterval)timeout tag:(long)tag;發送數據;

4,- (void)disconnect;斷開鏈接;

上面提到了設置委托,要實現以下委托方法

1,- (void)onSocket:(AsyncSocket*)sock didConnectToHost:(NSString*)host port:(UInt16)port;建立連接成功后回調;

2,-(void) onSocket:(AsyncSocket*)socket willDisconnectWithError:(NSError*)err;連接斷開后回調;

3,-(void) onSocket:(AsyncSocket*)sock didReadData:(NSData*)data withTag:(long)tag;接收數據回調;

三,CocoaAsyncSocket的使用方法

1.將下載好的三方RunLoop文件夾下的AsyncSocket.h, AsyncSocket.m, AsyncUdpSocket.h, AsyncUdpSocket.m 文件拷貝到自己的project中,添加CFNetwork.framework. (當然了,你也可以自己用Cocoapods進行配置,只要你開心就好.)

2.先繼承于NSObject創建個單例,命名為Singleton


Singleton.h


Singleton.m

3.運用懶加載創建AsyncSocket


4.通訊協議每個公司都不一樣,在這我就不一一舉例了。

具體想實現什么功能就去上面查找具體方法即可。


eg 給后臺發送數據的方法

附上接收數據

接收數據

四.還有沒說明白的大家可以加我的ios開發QQ群163619240



Apple Developer
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容