添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

安卓同事发了一份代码  如下

byte[] data = new byte[1024];
ByteBuffer byteBuffer = ByteBuffer.wrap(data, 0, 1024);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);

byteBuffer.put(SCREEN_COPY_VERSION);
byteBuffer.putInt(SERVER_TCP_LISTEN_PORT);

byteBuffer.put((byte) localAddress.length());
byteBuffer.put(localAddress.getBytes());
byteBuffer.put((byte) serverName.length());
byteBuffer.put(serverName.getBytes());
byteBuffer.put((byte) serverUuid.length());
byteBuffer.put(serverUuid.getBytes());

依葫芦画瓢  搞了一个iOS版本的ByteBuffer其中LittleEndian表示小端模式BigEndian大端模式  项目中进行组包 使用方法如下   其中put:表示后面是Byte类型1个字节   putInt 表示int类型4个字节等等

NSString *add = [ProjectHelp getCurrentLocalIP];

ByteBuffer *buffer = [Byte

做项目时需要拆包、组包 未方便进行字节清算、处理封装一个iOS版的ByteBuffer安卓同事发了一份代码 如下 byte[] data = new byte[1024]; ByteBuffer byteBuffer = ByteBuffer.wrap(data, 0, 1024); byteBuffer.order(ByteOrder.LITTLE_ENDIAN); byteBuffer.put(SCREEN_COPY_VE...
ios- byteBuffer [![CI状态]( Lee / ios- byteBuffer .svg?style = flat)]( Lee / ios- byteBuffer ByteBuffer *buffer = [ ByteBuffer initWithOrder: ByteOrderLittleEndian]; #输入数据 - ( void )put:( Byte )b; - ( void )put ByteBuffer :( ByteBuffer *)bb; - ( void )putData:( NSData *)data; - ( void )putShort:( short )d; - ( void )putFloat:( float )f; - ( void )putInt:( int )i; - ( Byte )get:( int )index;
加密算法有很多,我在网上找了个简单的算法,可惜是C语言的, 朕很不满意 ,一怒之下,自己研究了研究,改造成了java的; 后来 安卓 和ios都需要统一后台加密,手机端解密,经过简化和进一步的研究,增加了java和 OC 的加密解密的通用算法! 简单实用,贡献给大家。
// Int convert to NSData int num = 10; NSData *data = [NSData dataWithBytes:&num length:sizeof(num)]; const uint8_t *byte - (instancetype)initWithBytesN oC opy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 初始化对象。 不进行复制字节数组操作,直接设置字节指针为bytes,长度为length。 - (instancetype)i...
//包头:42个字节,第一个字节【目前基本上没用到,无需理会】,第二个字节【表示session的长度】,3-6字节【内容的长度】,最后36字节【客户端发送请求时的标示,当服务端返回结果时,客户端用来表示是哪个请求的返回结果。就是一个GUID或UUID】     char first = target.isPrice;           //第1个字节,暂时没有用到
ByteBuffer 是 Java 中用于处理二进制数据的缓冲区类,它可以在缓冲区中存储不同类型的数据,如 byte、short、int、long、float、double 等。使用 ByteBuffer 可以方便地进行数据的读取和写入,并且可以设置字节序(Byte Order)来保证数据在不同机器上的正确性。 ByteBuffer 的常用方法包括: 1. all oc ate(int capacity):分配一个容量为 capacity 的 ByteBuffer 。 2. put(byte[] src):将一个字节数组写入到 ByteBuffer 中。 3. get(byte[] dest):将 ByteBuffer 中的数据读取到一个字节数组中。 4. flip():将读写模式切换,将 limit 设置为当前位置,将 position 设置为 0。 5. rewind():将 position 设置为 0,使得数据可以重新读取。 6. clear():清空 ByteBuffer ,将 position 设置为 0,将 limit 设置为 capacity。 例如,下面是一个使用 ByteBuffer 写入和读取数据的示例代码: ```java // 创建一个容量为 10 的 ByteBuffer ByteBuffer buffer = ByteBuffer .all oc ate(10); // 写入数据 buffer.putInt(123); buffer.putDouble(3.14); buffer.putChar('A'); // 切换到读模式 buffer.flip(); // 读取数据 int intValue = buffer.getInt(); double doubleValue = buffer.getDouble(); char charValue = buffer.getChar(); System.out.println(intValue); // 输出 123 System.out.println(doubleValue); // 输出 3.14 System.out.println(charValue); // 输出 A 需要注意的是, ByteBuffer 中的 position、limit 和 capacity 属性的含义如下: 1. position:当前读写位置。 2. limit:缓冲区的限制,即当前可以读写的最大位置。 3. capacity:缓冲区的容量,即最多可以存储多少字节数据。 在写入数据时,position 会自动向前移动,而 limit 和 capacity 不会变化;在读取数据时,position 和 limit 会随着读取的数据量自动向前移动。如果需要重新读取数据,可以使用 rewind() 方法将 position 设置为 0,如果需要清空缓冲区,可以使用 clear() 方法将 position 设置为 0,limit 设置为 capacity。
进行网络出现问题Error Domain=kCFErrorDomainCFNetwork Code=-1022 "The resource could not be loaded because th