问题描述
- java 中TCP自定义数据包
-
比如我现在要定义包头,包头给了三个参数,用户名,密码,长度,时间,分别是4,12,2,4个字节,时间就是 从(00:00:00), January 1, 1970到现在消逝了多少秒(可由time函数获取),这个包头怎么定义
解决方案
将包头定义为一个字节数组即可,该字节数组的长度为4+12+2+4,传输的时候候将用户名、密码、长度、时间等转换成为对应的字节,放入定义的字节数组中,解析包的时候则将对应长度的字节流转换成相应的类型,比如字符串,时间,数字等等
伪代码如下:
byte[] arr=new byte[22];
String name="aaaa";
String pwd="bbbbb";
int len=10;
datetime=.....
byte[] nameArr=name的字节数组,
byte[] pwdArr=pwd的字节数组。
.....
将上面的字节数组加入到arr中进行传输,
接收端按照定义好的顺序取出对应的字节,转换成字符串,数字,或者时间。
解决方案二:
求大神指导。非常感谢大神指导,急求
解决方案三:
谢谢你,非常感谢你的帮助
解决方案四:
也可以定一个普通结构,由第三方库进行序列化和反序列化的操作。(比如xml或者json)
时间: 2025-01-21 04:39:04