GCDAsyncSocket的初步了解

对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];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容