我正在一个项目中,我需要读取一些值并通过套接字连接发送。 这是我必须创建包的格式: Java:如何使用字节创建包?
我必须读取这些值(我不知道它必须是一个王类型的每个值,int或字符串等): 型:的操作(如何获得4位只?) reserverd:我会填写0的 来源:谁发送消息 接收方:谁将接收消息 算法:哪种算法是goona被用来加密消息 填充:在加密算法中使用它 模式:要加密的模式
我必须读取此值并创建必须只有7个字节的程序包。
我该怎么做?
它必须是这样的,我认为:
byte[] r = new byte[]{
type+reserverd,
origin_1_byte, origin_2_byte,
receiver_1_byte, receiver_2_byte,
algorithm+padding,
mode};
UPDATE:
ByteBuffer buffer = ByteBuffer.allocate(100);
// read data into buffer
buffer.rewind();
buffer.order(ByteOrder.LITTLE_ENDIAN);
// 0xf and co mask off sign extension -> handle byte as unsigned
int type = (buffer.get() >> 4) & 0xf; // 15 in decimal
buffer.rewind();
buffer.put((byte)(type << 4));
System.out.println("type = " + type);
output : 0 (why ?)
任何想法?
请将您从网络读取数据的代码添加到ByteBuffer中。看起来好像你试图读取从未存储在bytebuffer中的数据 - 这显然无法工作;) – Voo 2011-06-06 19:07:16
Dude,这似乎很难..对不起,我是一个新的Java,所以我不怎么发送这个以及如何在我的服务器套接字中接收这个。 我用我的clint发送printStream,并用bufferedReader接收..抱歉的人,我不想打扰你。 – 2011-06-06 19:31:24
没有概率,没有概率 - 每个人都开始新的。可能最好的想法是在这里为java NIO包阅读一个像[this]这样的快速教程(http://java.sun.com/developer/technicalArticles/releases/nio/),它在一小段中解释了基本知识工作。我会将重要的部分添加到我的答案中。 – Voo 2011-06-06 19:33:31