2 qq 27780259 qq_27780259 于 2015.06.05 15:55 提问

java 中TCP自定义数据包

比如我现在要定义包头,包头给了三个参数,用户名,密码,长度,时间,分别是4,12,2,4个字节,时间就是 从(00:00:00), January 1, 1970到现在消逝了多少秒(可由time函数获取),这个包头怎么定义

4个回答

bulusli3
bulusli3   Ds   Rxr 2015.06.05 16:28

将包头定义为一个字节数组即可,该字节数组的长度为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中进行传输,
接收端按照定义好的顺序取出对应的字节,转换成字符串,数字,或者时间。

qq_27780259
qq_27780259   2015.06.05 16:03

求大神指导。非常感谢大神指导,急求

qq_27780259
qq_27780259   2015.06.05 16:47

谢谢你,非常感谢你的帮助

nswcfd
nswcfd   2015.06.05 20:57

也可以定一个普通结构,由第三方库进行序列化和反序列化的操作。(比如xml或者json)

Csdn user default icon
上传中...
上传图片
插入图片