概要:有关TCP的与服务器的三次握手此处就不介绍了,网上有很多基础知识,此篇主要是介绍使用TCP与服务器通信的实战项目。
一、TCP的基本使用
- 使用TCP与服务器通讯,我是使用GCDAsyncSocket三方库,首先在github中下载类库,加到项目工程,或者直接使用cocopods导入
- 封装自己在项目中使用的TCP类库,在OGTcpClient.h中定义常用属性,socket连接和发送消息的方法,如下
#import "GCDAsyncSocket.h"
#import <Foundation/Foundation.h>
@class OGTcpClient;
enum{
SocketOfflineByServer,// 服务器掉线,默认为0
SocketOfflineByUser, // 用户主动cut
};
typedef enum {
OGResultTypeUserLoginSuccess,
OGResultTypeUserLoginFailed,
OGResultTypeActorLoginSuccess,
OGResultTypeActorLoginFailure
}OGResultType;
typedef void(^OGResultBlock)(OGResultType type);
@interface OGTcpClient : NSObject<GCDAsyncSocketDelegate, UIAlertViewDelegate>
singleton_interface(OGTcpClient)
@property (nonatomic, strong) GCDAsyncSocket *clientSocket;
@property (nonatomic, assign) NSTimer *connectTimer;// 计时器
@property (nonatomic, assign) BOOL hasHeatBeat;
@property (nonatomic, assign) OGResultType _block;
@property (nonatomic, strong) NSMutableData *_readBuf;// 缓冲区
- (void)socketConnectHost;// socket连接
- (void)cutOffSocket; // 断开socket连接
- (void)writeData:(NSData *)data; // 发送消息
- (void)hasReadData:(N