美文网首页iOS进阶不易的地方
GCDAsyncSocket的初步了解

GCDAsyncSocket的初步了解

作者: 心跳节奏 | 来源:发表于2016-03-25 18:34 被阅读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];

相关文章

网友评论

    本文标题:GCDAsyncSocket的初步了解

    本文链接:https://www.haomeiwen.com/subject/udhdlttx.html