码迷,mamicode.com
首页 > 其他好文 > 详细

CocoaAsyncSocket使用笔记

时间:2015-07-30 13:39:54      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:github   框架   ios开发   

先去github的网站下载最新的包,然后先看看介绍。写的比较详细了

https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAsyncSocket

网上很多都是老版本的帖子。官方已经推出了GCDAsyncSocket来代替以前老的AsyncSocket。

我的项目是no-ARC的,这个框架只有arc的版本。所以引入GCDAsyncSocket的.h和.m文件后,修改xcode中项目的属性。

1)targets中“build settings”中找到Compiler for c/c++/Objective-c的选项。改为Apple LLVM compiler 3.0 只要是3.0或以上就可以

2)在“build phases”中“compile sources”中找到GCDAsyncSocket.m,增加参数-fobj-arc

3)引入GCDAsyncSocket所需要的框架,CFNetwork和security这两个


这样就可以在我的no-arc的项目中来使用GCDAsyncSocket的库了。下面是我写的连接echoServer的client

- (void) initNetwork{

    socket= [[GCDAsyncSocketalloc] initWithDelegate:selfdelegateQueue:dispatch_get_main_queue()];

    NSError*error = nil;

    if(![socketconnectToHost:@"服务器IP"onPort:服务器端口 error:&error]) {

        NSLog(@"is aready connected");

    }

}


- (void) sendData{

    NSLog(@"send Message to server");

    NSData*datas = [@"client send msg"dataUsingEncoding:NSUTF8StringEncoding];

    [socket writeData:datas withTimeout:-1 tag:1];//这里tag没用到

    [socket readDataWithTimeout:-1 tag:1];//这句必须加,否则收不到服务器返回数据

}


- (void) socket:(GCDAsyncSocket*)sock didConnectToHost:(NSString*)host port:(uint16_t)port{

    NSLog(@"connected to the server");

}


- (void) socket:(GCDAsyncSocket*)sock didReadData:(NSData*)data withTag:(long)tag{

    NSString*msg = [[NSStringalloc] initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"return message=%@",msg);

}


- (void) socketDidDisconnect:(GCDAsyncSocket*)sock withError:(NSError*)err{

    NSLog(@"close connected");

}



版权声明:本文为博主原创文章,未经博主允许不得转载。

CocoaAsyncSocket使用笔记

标签:github   框架   ios开发   

原文地址:http://blog.csdn.net/yangchen9931/article/details/47147089

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!