iOS进阶不易的地方

GCDAsyncSocket的初步了解

2016-03-25  本文已影响224人  心跳节奏

对GCDAsyncSocket的初步了解

这个第三方是对Socket编程的封装,运用于iOS及OS系统的网络编程。

服务端代码

开启一个Socket

   //需要使用一个强引用指向该socket
    GCDAsyncSocket *socket = [[GCDAsyncSocket      alloc]initWithDelegate:self delegateQueue:dispatch_get_global_queue(0, 0)];
    //指定端口号
    BOOL success = [socket acceptOnPort:5288 error:&error]; //指定端口

当开启成功时会返回YES,当端口被占用时会返回NO.

监听客户端的连接

当有客户端连接到服务器,我们可以实现代理方法来拿到客户端的socket。

//实现代理方法
- (void)socket:(GCDAsyncSocket *)serviceSock didAcceptNewSocket:(GCDAsyncSocket *)clientSocket{
      //-1是指不超时。
      [clientSocket readDataWithTimeout:-1 tag:0];
}

处理客户端发送的数据

当客户端发送数据过来时,我们可以通过代理方法来获取

- (void)socket:(GCDAsyncSocket *)clientSocket didReadData:(NSData *)data withTag:(long)tag
{
     NSString *str = [[NSString alloc ]initWithData:data  encoding:NSUTF8StringEncoding];
     NSLog(@"%@",str);
}

关闭连接

结束会话

[self exitWithSocket:clientSocket];
上一篇 下一篇

猜你喜欢

热点阅读