Socket UDP通信之 AsyncUdpSocket的使用方法及二次封装

本文介绍了如何使用AsyncUdpSocket进行UDP通信,包括从CocoaAsyncSocket GitHub仓库下载相关文件,引入CFNetwork.framework,以及在实际应用中如何处理byte字节流解析,强调了与后台服务器沟通确定字节含义的重要性。
摘要由CSDN通过智能技术生成

下载AsyncSockethttps://github.com/robbiehanson/CocoaAsyncSocket类库,将RunLoop文件夹下的AsyncSocket.h, AsyncSocket.m, AsyncUdpSocket.h, AsyncUdpSocket.m 文件拷贝到自己的project中

添加CFNetwork.framework, 在使用socket的文件头

#import <Foundation/Foundation.h>
#import "AsyncUdpSocket.h"
#import <CommonCrypto/CommonDigest.h>

typedef void (^dataBlock)(NSDictionary *response, NSString *responseString);


@interface UDPSocketSingleton : NSObject<AsyncUdpSocketDelegate>


@property (nonatomic, strong) AsyncUdpSocket *socket;   // socket
@property (nonatomic, copy) NSString *socketHost;       // socket的Host
@property (nonatomic, assign) UInt16 socketPort;        // socket的prot
@property (nonatomic, strong) NSTimer *connectTimer;    // 计时器
@property (nonatomic, strong) NSDictionary *socketResult;

@property (nonatomic, strong) dataBlock receiveData;

/**
 *  block回调方法,为了回调的时候少写代码
 */
- (void)receiveData:(dataBlock)block;

+ (UDPSocketSingleton *)sharedInstance;   // 单例

- (void)socketConnectHost;  // socket连接

-(void)cutOffSocket; // 断开socket连接
@end

通信中,涉及到byte字节流的解析,这个就需要根据实际情况的字节流数组中各个字节的要求和代表的数据内容来进行解析了。这些需要跟后台服务器沟通,确定每个字节代表了什么

#import "UDPSocketSingleton.h"



static UDPSocketSingleton *sharedInstance = nil;
@implementation UDPSocketSingleton

+ (UDPSocketSingleton *)sharedInstance {

    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{

        sharedInstance = [[self alloc] init];
    });

    return sharedInstance;

}




#pragma mark - 连接host
- (void)socketConnectHost {

    /**
     *  初始化
     */
    self.socket = [[AsyncUdpSocket alloc] initIPv4];

    _socket.delegate = self;


  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值