iOS socket 发送byte数组(NSMutableData)

使用socket的时候,后台有时会要求发送byte数组,但是iOS开发中很少会用到byte数组,这是因为苹果已经讲byte封装了起来,我们平常使用的nsdata其实就是byte。在开发中遇到一个情况:

 byte[] a = new byte[3];
        a[0] = 12;
        a[1] = 13;
        a[2] = 14;

后台利用这样的方法创建了一个byte数组,要求前端也要这样传递,安卓端很好处理,但是iOS因为语言的问题,在网上没有找到类似的方法,但是有个相近的处理方法:点击这里查看。但是这个方法中介绍的一句并不适合:

HTONS 转换端序,从小端序转为大端序

这里不知道为什么,其实iOS上传的时候并不需求从小段转为大端,可能是后台处理方式的不一样,所以我是借用了作者的处理方式,但是去掉了 HTONS 的转换,这样我这边后台就可以拿到正确的数据了。下面是我的处理方式:

NSInteger companyId = 1;
    NSInteger userId = 2017;
    NSInteger mobile = 1;
    NSInteger time = [self timeSwitchTimestamp];
    NSInteger nowT = [[NSString stringWithFormat:@"%.f", [[NSDate date] timeIntervalSince1970] * 1000] integerValue];
    NSInteger lastsend = nowT - time;
    NSInteger sheetid = 12022949;
    NSInteger sheetstatus = 1001;
    NSInteger kind = 1;

NSMutableData * adata3 = [[NSMutableData alloc]init];
    [adata3 appendBytes:&flag length:sizeof(flag)];
    [adata3 appendBytes:&kind length:sizeof(kind)];
    [adata3 appendBytes:&companyId length:sizeof(companyId)];
    [adata3 appendBytes:&userId length:sizeof(userId)];
    [adata3 appendBytes:&mobile length:sizeof(mobile)];
    [adata3 appendBytes:&lastsend length:sizeof(lastsend)];
    [adata3 appendBytes:&sheetid length:sizeof(sheetid)];
    [adata3 appendBytes:&sheetstatus length:sizeof(sheetstatus)];

你可能感兴趣的:(iOS socket 发送byte数组(NSMutableData))