java socket发送定长报文_java socket报文通信(二)报文的封装

本文介绍了如何在Java中封装和发送定长报文,包括3位同步校验位、8位报文长度、报文头、报文体和32位MD5校验位。通过SocketPacket类和SockeUtil工具类实现字节与字符串的转换,以及报文的发送与接收。
摘要由CSDN通过智能技术生成

昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文。

什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料。我们今天要谈的报文主要友以下几个部分组成:

3位同步校验位+8位报文长度+报文头+报文体+32位MD5校验位

基本格式如下:

0X110X120X1300000232<?xml version="1.0" encoding="GBK"?>02042014122314122301000815217010001张三B251AB76B11114DB176023A0AA27A524

说明:

前面的0X110X120X13是3位16进制的同部位,这里为了大家理解,所以就以字符的形式谢出来了。00000232是报文长度。<?xml version="1.0" encoding="GBK"?>02042014122314122301000815217010001是报文头。即每个报文都包含的信息。张三是报文体。B251AB76B11114DB176023A0AA27A524是加密数据。

关于如何将对象转换为xml格式的报文我将在下一篇写,这里主要是给大家如何将如上的这些字符串转化为字节以及如何发送和接收报文。

1.建立报文的对象

public classSocketPacket {privateString bodyLen;privateString body;privateString syncStr;privateString md5;publicString getBodyLen() {returnbodyLen;

}publicString getBody() {returnbody;

}publicString getSyncStr() {returnsyncStr;

}publicString getMd5() {returnmd5;

}public voidsetBodyLen(String bodyLen) {this.bodyLen =bodyLen;

}public voidsetBody(String body) {this.body =body;

}public voidsetSyncStr(String syncStr) {this.syncStr =syncStr;

}pu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值