[网络通信]CocoaAsyncSocket的使用

关于大赛,按期提交了比赛视频,坐等结果。

今天整理下网络通信库文件CocoaAsyncSocket的移植和使用。

用CocoaPods导入CocoaAsyncSocket,参见http://blog.csdn.net/dominic_ding/article/details/31455349。

如果不使用CocoaPods,那么自己从github下载库文件,https://github.com/robbiehanson/CocoaAsyncSocket/。

在需要调用TCP通信的视图控制器的.h文件中引用头文件:#import "GCDAsyncSocket.h",并申明符合委托GCDAsyncSocketDelegate

建立TCP连接,并发送数据帧:

    socket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];

    NSError *err = nil;

    if(![socket connectToHost:@"/*目标IP地址*/" onPort:[@"/*端口地址*/" intValue] error:&err])

    {

        NSLog(@"未能建立TCP连接");

    }else

    {

        NSString *temp=@"/*你需要发送的数据*/";

        [socket writeData:[temp dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];

        NSLog(@"成功发送数据");

    }

如果建立了TCP连接,会调用如下函数:

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

{

     NSLog(@"成功建立TCP连接");

    [socket readDataWithTimeout:-1 tag:0];//-1代表没有超时时间限制,tag是为了便利编程者的参数,可以随便用作自定义的某参数

}

如果收到了TCP连接返回的数据帧,会调用:

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

{

    NSString *newMessage = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];//将数据帧转换为字符串

    //处理newMessage字符串

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值