YINSocket 1.0.1

YINSocket 1.0.1

wangyin1 维护。



YINSocket 1.0.1

  • 作者:
  • wangyin1

YINSocket

基于 GCDAsyncSocket 封装,控制心跳

typedef enum : NSUInteger { YINSocketEventConnectSucceed,//连接成功 / 有新的客户端连接 YINSocketEventConnectError,//断开连接 / 有客户端断开连接 YINSocketEventRecive,//收到消息 } YINSocketEventStatus;

typedef void(^YINSocketEventBlock)(YINSocketEventStatus status,id socket,NSString *message);

@interface YINSocket : NSObject

//客户端主动断开连接 tcp udp通用

  • (void)close;

//---------------tcp 面向连接的 socket---------------

//初始化一个客户端 app 开发一般只需要 socket 客户端

  • (instancetype)tcpSocket;

//设置断开自动重连次数 默认为 5 如果五次连接都失败,则触发 YINSocketEventConnectError @property(nonatomic,assign)NSInteger autoConnect;

//连接服务端 host 可以是网络解析地址,不需要传 port。如果是 ip 需要传 host 和 port

  • (BOOL)tcpConnectToHost:(NSString *)host onPort:(NSString *)port eventBlock:(YINSocketEventBlock)block;

//向服务端发送消息

  • (void)tcpSendToService:(NSString *)str;

//初始化一个服务端 一些特殊的 p2p 需求 要用 app 作为服务端

  • (instancetype)tcpSocketService;

//已连接的所有客户端 @property(nonatomic,strong,readonly)NSMutableArray<GCDAsyncSocket *> *tcpClients;

//服务端开启一个端口用于监听事件

  • (BOOL)tcpAcceptOnPort:(NSString *)port eventBlock:(YINSocketEventBlock)block;

//服务端向客户端发送消息,client 为 nil 为广播

  • (void)tcpSendDataString:(NSString *)str toClient:(GCDAsyncSocket *)client;

//服务端主动断开客户端 nil 为断开所有连接

  • (void)tcpCloseTcpClient:(GCDAsyncSocket *)client;

//---------------udp 非连接的 socket 也可以连接---------------

  • (instancetype)udpSocket;

//开启端口 可以接收 udp 消息

  • (BOOL)udpBindOnPort:(NSString *)port eventBlock:(YINSocketEventBlock)block;

//向 ip 发送消息 ip 要加端口号

  • (void)udpSendDataStr:(NSString *)str toIP:(NSString *)ip;

//连接一个地址。如果连接,则只能发送和接收此地址的消息 一般情况使用 udp 都是非连接

  • (BOOL)udpConnectToHost:(NSString *)host onPort:(NSString *)port;

/////加入一个组 发送消息时组内所有成员都能收到消息 需要传一个 ip 不需要端口 //- (BOOL)udpJoinGroup:(NSString *)ip; @end