CocoaAsyncSocket使用笔记

先去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:@"serverIP"onPort:serverport 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];//这句必须加。否则收不到server返回数据

}


- (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");

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值