美文网首页程序员
iOS socket 发送byte数组(NSMutableDat

iOS socket 发送byte数组(NSMutableDat

作者: 旅途开发者 | 来源:发表于2018-08-03 11:22 被阅读343次

    使用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数组(NSMutableDat

        本文链接:https://www.haomeiwen.com/subject/wiryvftx.html