求助:java中byte[] 中数据的获取

问题描述

byteversion=1;shortmstype=3001;shortsn=001;Stringstrs="127.0.0.1";ByteBufbuf=builderPacketHead(64,false,false,version,mstype,sn,strs);//这是封装好的方法PS:为什么byteBuf输出的值是“741-711110127001”现在我想重新从bytebuf中获取到sn和strs的值。应该怎么写?求大神

解决方案

解决方案二:
求大神指点呐,自己顶顶
解决方案三:
求大神,求解惑
解决方案四:
一个short类型占据两个字节长度
解决方案五:
引用3楼lxraiyl的回复:

一个short类型占据两个字节长度

那我怎么获取bytebuf里面的数据呢?下面是封装接收到数据包的方法,我要从这个方法里拿到SN和STRS的信息。请问改怎么写?多谢publicstaticByteBufbuilderPacketHead(intsendFlag,booleanencryption,booleancondense,byteversion,shortmessType,shortseriaNumber,Stringip){PackageBuilderbuilder=newPackageBuilder();//本类ByteBufbuf=Unpooled.buffer(packetLength);//bytebuf的长度=10buf.writeByte(builder.addFlag(64,true,true));//封装信息标志位buf.writeByte(version);//添加版本号信息buf.writeBytes(builder.addShort(messType));//添加消息类型buf.writeBytes(builder.addShort(seriaNumber));//添加流水号buf.writeBytes(builder.addIP(ip));//添加IPreturnbuf;}

时间: 2024-12-02 03:32:03

求助:java中byte[] 中数据的获取的相关文章

java 将byte中的有效长度转换为String的实例代码_java

 一般的我们使用byte接收读取到的数据,若数据没有达到byte定义的大小时,我们直接将byte转换为String则会出现乱码的情况,在这种情况下应该基于read的返回值来转换byte,否则将产生乱码的情况, 下面是一个简单的示例: package com.javaio.myinputstream; public class MyConsole { public static void main(String argv[]) throws Exception { System.out.print

lambda表达式中怎么统计数据库数据

问题描述 lambda表达式中怎么统计数据库数据 怎么获取所有编号的所有金额 解决方案 根据CusID相同的分组么?将数据库的记录返回List,然后用如下方法即可: var result = datas.GroupBy(x => x.CusID).Select(x => new { key = x.Key, value = x.Sum(y => y.OrdTotalMoney) }); 解决方案二: var query = db.YourTables.GroupBy(t =>t.C

求助) Java中如何获取数组中的有效数据长度

问题描述 Java中如何获取数组中的有效数据长度?请各位大虾指点一二,谢谢!如:bytearr[]=newbyte[100];现在我向arr中输入任意数(-128~127),请问如何知道我已经输入多少个了呢? 解决方案 解决方案二:for循环呗遍历一次就行.解决方案三:使用一个变量如count记录,输入一个就把count加1.解决方案四:遍历吧解决方案五:要是那样存数,你不如用Vector或其它的,那个容易找,解决方案六:遍历是可以,问题是该用什么做基准值呢?看样子只能用动态数组了解决方案七:用

服务器-关于java网络编程中获取输入流中数据的问题?

问题描述 关于java网络编程中获取输入流中数据的问题? //服务器端接收消息的类.定制端口号为8888 serviceSocket = new ServerSocket(10000); //获取socket.这个方法是阻塞式的 socket = serviceSocket.accept(); inputStream = socket.getInputStream(); byte buf[] = new byte[1024]; int len = 0; len =inputStream.read

java web应用中新起一个线程 在线程中怎么获取系统登录的数据

问题描述 java web应用中新起一个线程 在线程中怎么获取系统登录的数据 java web应用中新起一个线程 在线程中怎么获取系统登录的数据,系统登录用的是Spring Secrity 解决方案 可以使用缓存,自己写一个缓存类.或者使用Redis.

java中的结束日期为什么获取不到等于的数据

问题描述 java中的结束日期为什么获取不到等于的数据 这样写就越界了 应该怎么写 解决方案 看看endDate是什么值,endDate字符串没有那么长,越界了. 解决方案二: endDate总共都没有10个长度,你截取10个长度,当然报错了 解决方案三: 有两个可能 1.你的endDate没有10个长度 2.我看你的回复enddate的值为null,但是你在if条件中做了trim操作,null是不可以trim的吧...而且值为null的话应该不会执行if的第二个条件了吧.. 你打断点看看 解决

java从数据库中获取数据存放到几个数组中,结果数组中都是最后一个一个数组的值

问题描述 用java从数据库中获取取数据,用五个查询语句将数据存储在几个数组中,但在用数组中的数据进行计算时,几个数组中的数据都是最后一个数组的值,请教各位高人,是一个什么原因! 解决方案 解决方案二:楼主把题目描述得清晰一点,或者是用伪代码来描述可能会更加好一点,说实话,我没怎么明白你的意思解决方案三:代码呢,没代码要人去猜么

基于java中byte数组与int类型的转换(两种方法)_java

java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

如何在service中获取camera中的视频数据

问题描述 如何在service中获取camera中的视频数据 小弟是Android新手,最近遇到一点困难,困难具体如下,请各位大哥赐教: 我想在service中获取camera组件,然后把从camera中获取的数据通过 socket发送到电脑端. 现在主要的问题是不知道怎么获取camera中的数据,surfaceView貌似行不通 解决方案 用void onPreviewFrame(byte[] data, Camera camera),data就是预览图像的数据一般情况下是YUV格式. 解决方