-
CocoaAsyncSocket
- 目录:Source/GCD:
- AsyncSocket.h AsyncSocket.m TCP实现
- AsyncUdpSocket.h AsyncUdpSocket.m UDP实现
- 使用协议导入相应文件即可,无依赖。
- 目录:Source/GCD:
- TCP的简单使用:
- 1.创建一个Socket对象
GCDAsyncSocket *serverSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_global_queue(0, 0)];
- serverSocket 服务端的Socket只监听有没有客户单请求连接
- 代理一般写self,队列:代理的方法在哪一个队列里调用
- 通过代理知道有客户端连接进来
- 2.绑定端口并监听
[serverSocket acceptOnPort:3000 error:&error];
- 有客户端socket连接到服务器
- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket
- 第一个socket形参为服务器socket,第二个socket形参为客户端scoket
- 我们要在这个函数里做以下事情
- 保存客户端的socket,如果不保存会自动终止连接。客户端socket可以保存在NSMutableArray中。
- 监听客户端有没有数据上传
[clientSocket readDataWithTimeout:-1 tag:0];
- 第一个形参代表超时时间,-1代表不超时
- 读取客户端请求的数据
-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
- 我们要在这个函数里做以下事情
- 把NSData转换为NSstriing。
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
- 处理请求,返回数据给客户端。
[clientSocket writeData:[respon
- 每次读完数据后,都要调用一次数据监听。
[clientSocket readDataWithTimeout:-1 tag:0];
- 把NSData转换为NSstriing。
- 我们要在这个函数里做以下事情
- 两个重要的属性
@property (atomic, readonly) NSString *connectedHost;//客户端IP地址
@property (atomic, readonly) uint16_t connectedPort;//客户端端口号
网友评论