GCDAsyncSocket~

第三方的一个socket通信框架,原生的一般用的人比较少,优秀第三方可以提升开发效率,减少开发中出现错误的几率

下面的代码是实例化一个socket对象,并为其指定代理,指定代理方法运行的队列

_socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];

下面的代码是指定一个主机名,一个端口号,进行链接

[_socket connectToHost:hostName onPort:port error:&error];

连接成功之后就可以进行socket通信了

为当前的控制器指定GCDAsyncSocket代理协议,并实现

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

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

- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag

见其名知其意,其实代理方法有很多,只不过这三个比较常用而已

一般在didWriteDataWithTag会调用一次[_socket readDataWithTimeout:-1 tag:tag];方法去读取数据(注意,didWrite是完成时,已经将数据写给了服务器)

而且根据tag值我们还可以判断出是哪一个或者哪一类发送的数据对应的返回数据

还有一个需要注意的地方就是,如果接收到数据后要刷新View,你需要看一下你接收到数据那个方法所在的是不是主线程,如果不是主线程需要进行切换,只有在主线程里才能更新UI

时间: 2024-08-13 00:19:27

GCDAsyncSocket~的相关文章

第2月第1天 GCDAsyncSocket dispatch_source_set_event_handler

一.GCDAsyncSocket的核心就是dispatch_source_set_event_handler 1.accpet回调 accept4Source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, socket4FD, 0, socketQueue); int socketFD = socket4FD; dispatch_source_t acceptSource = accept4Source; dispatch_source_

GCDAsyncSocket通信

// // ViewController.m // Socket1 // // Created by 阿仁欧巴 on 16/5/7. // Copyright © 2016年 aren. All rights reserved. // #import "ViewController.h" #import "GCDAsyncSocket.h" @interface ViewController () < UITextFieldDelegate, UITableV

iOS开发——GCDAsyncSocket

新进的这家公司搞智能家居,就随便整理一下其相关技术吧!首先,从GCDAsyncSocket的使用问题着手. 正如名称一样GCDAsyncSocket开源类库是以苹果的GCD多任务处理机制完成的一个异步交互套接字通讯.使用方法其实并不复杂.每一个GCDAsyncSocket对象(以下简称GCDSocket对象)都可以理解为一个socket套接字,我们的操作都是针对于这个socket执行的各种命令,可以打开一个端口侦听,同样也可以连接其他计算机的端口进行数据通讯等等等等. 首先我们来创建一个sock

01-socket第三方库 AsyncSocket(GCDAsyncSocket)

[IOS网络通信]socket第三方库 AsyncSocket(GCDAsyncSocket) Socket描述了一个IP.端口对.它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息.所以,Socket一定包含了通信的双发,即客户端(Client)与服务端(server). 1)服务端利用Socket监听端口: 2)客户端发起连接: 3)服务端返回信息,建立连接,开始通信: 4)客户端,服务端断开连接. 1套接字(socket)概念 套接字(s

iOS Socket/Tcp编程 GCDAsyncSocket的实战(带回调)

很多同学一听到Socket TCP UDP 这几个字眼感觉特别害怕,很怕在工作当中使用,因为他们太底层了.下面我把我在工作中使用Socket类库GCDAsyncSocket进行一次实战 文章中只适用于小型数据传输, 如果比较到,例如音频文件的话,请自行拼接data. 首先向工程导入GCDAsyncSocket.h/GCDAsyncSocket.m 下载地址:链接:http://pan.baidu.com/s/1c1bHytM密码: p22g 然后创建一个单例类Client 继承于NSObject

XMPP适配IPV6 (GCDAsyncSocket适配IPV6)

苹果公司要求在6月1号之后上架Appstore的应用必须通过ipv6兼容测试. 最近到了八月份,开始发现新上架的app没有通过,查看了下原因,说没有适配IPV6. 首先在本地搭建一个IPV6的测试环境,使用mac搭建详情请看 http://blog.csdn.net/yuwuchaio/article/details/51459705 如果项目用使用了XMPP 你会发现在IPV6环境下根本登陆不上了,究极原因,是因为XMPP使用了第三方的socket库:CocoaAsyncSocket,里面包含

IOS GCDAsyncSocket

// // ViewController.m // 05.聊天室 // // Created by apple on 14/12/5. // Copyright (c) 2014年 heima. All rights reserved. // #import "ViewController.h" #import "GCDAsyncSocket.h" @interface ViewController ()<UITextFieldDelegate,UITable

GCDAsyncSocket使用

第一次写东西文笔不好,不知道从何下手,想想就从这段时间做智能家居相关的APP中遇到的GCDAsyncSocket使用问题着手吧! 首先得大概了解TCP原理和UDP的一点区别!当然了我自己也是似懂非懂的状态,这些还是要靠自己慢慢摸索,多看看别人的blog见解,网上一搜一大把.GCDAsyncSocket是IOS中TCP通讯使用的一个第三方库.至于的它的什么三次握手啊这些网上多的很,我也不做过多的重复.下面就从demo开始吧! //客户端方面 导入库 #import"GCDAsyncSocket.h

CocoaAsyncSocket 文档3:介绍GCDAsyncSocket

原文地址:https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAsyncSocket GCDAsyncSocket is a TCP library. It's built atop Grand Central Dispatch. This page provides an introduction to the library. GCDAsyncSocket是一个TCP库.它建立在GCD技术之上.本页就是介绍这个库. I