不知不觉做接口系统也有较长时间,对接口系统来说,会遇到各式各样的报文如8583报文、类8583报文及各种软件商家自定义的报文。

面对交易流程:接收请求报文----》处理报文-----》接收响应报文。

接收请求报文、发送响应报文因是tcp传送,基本上会在报文最前端加入一个报文长度(表示之后的报文有长,以便对方的机器进行接收)。

报文长度的表示方法中较常见的如:

1)用n(一般为4、6)字节来表示报文长度;即也称字符串表示报文长度。(即是一个右靠齐的方式,左补数字0)---------------这种方式是最简单的也是最常见的。

如:报文长度为123.

当n=4时:“0123”

当n=6时:“000123”

2)可能你会碰到下面的这种形式

消息头格式

参数名称

类型

长度

备    注

1

消息总长度

INTEGER

4

消息长度(字节)

2

协议版本

ASCII

4

与协议的版本同步,如“0101”代表v1.01 咋看消息总长度的表示方式:你就会有些不懂,(特别当你是用C语言的人时,则会很吃惊.书上int不是2字节嘛,不同机器可能会不样处理,这里就不多说)。

其实可以这样理解,目前所处理的都是以字节(不必去区分什么大端、小端的问题)做为最小单位来存储数据。所以当看到上面的长度是一个INTEGER,用4个字节来存。理解为:是用4*8=32比特位来存储INTEGER变量,高位在低字节(如C语言表示:char length[4],length[0]存储最高的8位,length[3]存储最低的8位)。

如:报文长度是len=295;

C语言表示:

caMsgBuf[0] = (iLen & 0xff000000) >> 24;

caMsgBuf[1] = (iLen & 0x00ff0000) >> 16;

caMsgBuf[2] = (iLen & 0x0000ff00) >> 8;

caMsgBuf[3] = (iLen & 0x000000ff); JAVA表示:

byte[] buf = new byte[4];

buf[0] = (byte)((l & 0xff000000) >> 24);

buf[1] = (byte)((l & 0xff0000) >> 16);

buf[2] = (byte)((l & 0xff00) >> 8);

buf[3] = (byte)(l & 0xff);

从上可以看出不同语言的处理方式基本相同。

3)其他较件厂商的基本也是以二的变种。仔细分析,没有什么问题。

java 报文长度_关于报文长度的理解相关推荐

  1. 线性代数 向量长度_用户定义长度的向量| 使用Python的线性代数

    线性代数 向量长度 Prerequisite: Defining a vector 先决条件: 定义向量 Linear algebra is the branch of mathematics con ...

  2. python怎么打印列表长度_打印知道长度和宽度的钻石(Python)

    我需要使用python输入长度来打印钻石.我已经使它能够检查宽度(取决于它是奇数还是偶数),并确保输入的数字正确.但是我在打印结果时遇到了问题. 这是我得到的: length : 10 * *** * ...

  3. jvm对于java的意义_谈谈对JVM的理解

    JVM可谓是学习JAVA基础中的基础了,但仍有不少同学对JVM概念还是比较模糊,甚至没有听说过,对java的理解也只是在基础语法 层面,本文就将对JVM进行初步介绍,因篇幅所限,只能介绍JVM基础,如 ...

  4. java 死锁演示_史上最通俗理解的Java死锁代码演示

    死锁的概念 知识储备 对象锁:Java一切皆对象,每个类都有一个class文件.由class文件可以new出对象,我们简单认识 下java对象,对象有个对象头信息,也就是这个对象概述,其中一条信息就是 ...

  5. java socket发送定长报文_一个基于TCP协议的Socket通信实例

    原标题:一个基于TCP协议的Socket通信实例 1. 前言 一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度.正好前段时间完成了一个so ...

  6. java数据长度_存储单位(字节)

    所谓的占用字节数 就是申请内存的时候所占的空间大小记住一句话:计算机输入的符号最小1个字节,1字节 = 8bit (1bit就是二进制的1位) 8bit 表示的最大内存 等于 二进制的 1111-11 ...

  7. JAVA建行银企直连报文加解密

    接上一篇密钥交换之后获得银行提供的:银行RSA签名公钥RSA.bank.public.key,接受报文验签使用:银行DES加密私钥DES.bank.private.key,加密报文使用.还有之前自己生 ...

  8. java发送iso8583报文接口框架,ISO8583报文工具类(组装和解析报文)

    package com.lsy.common.util; import java.io.FileInputStream; import java.io.UnsupportedEncodingExcep ...

  9. tcp报文格式_面试必备TCP(一):三次握手

    TCP大家都知道是什么东西,这个协议的具体报文格式如下: 标志位 URG:指示报文中有紧急数据,应尽快传送(相当于高优先级的数据). PSH:为1表示是带有push标志的数据,指示接收方在接收到该报文 ...

最新文章

  1. c语言联合体作用,C语言 联合体(Unions)
  2. 一个网站让你系统的入门脑机接口和神经科学
  3. 使用jrtplib打包发送h264数据,关使用vlc|mplayer播放
  4. 一文带你理解云原生|云原生全景指南
  5. docker入门之容器网络
  6. 锁屏界面显示某些设置已隐藏_iOS 14 隐藏功能,只要轻点手机背面就能截屏
  7. PHP 规划(收藏的一些好博文)
  8. MySQL-->索引-->如何创建索引,创建原则
  9. python解释器使用函数可以进入帮助系统_使用help()命令可以进入帮助系统。
  10. 网上赚钱的平台哪个好?7个方式总有你喜欢的!
  11. 美学心得(第一百七十九集) 罗国正
  12. 大秦帝国之崛起的几点启发
  13. kali linux Live Usb Encrypted Persistence配置教程
  14. 学生学籍管理系统_管理员登陆对学生的信息进行操作
  15. 想要搭建个人博客?我调研了 100 来个 Java 开源博客系统,发现这 5 个最好用!......
  16. Python解析DBLP的xml文件
  17. 为什么我要反对北大青鸟[转自老赵]
  18. 在后台定时连续截屏的工具 —— 定时执行专家
  19. 作为一名程序员我不忘初心,Android岗
  20. 谷歌SEO发展的八大趋势

热门文章

  1. 吃透Chisel语言.18.Chisel模块详解(五)——Chisel中使用Verilog模块
  2. 2016电商重大并购名单:未来并购会更频繁
  3. vivoiqooz1鸿蒙系统,vivoiqooz1x参数配置详情_iqoo z1x详细参数跑分
  4. R语言kmeans聚类提示:Warning message:10迭代仍没有聚合
  5. 《Windows程序设计》读书笔七 鼠标
  6. 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1
  7. java.io.IOException: unexpected end of stream on https://xxx.xxx.xxx.xxx:84/
  8. 《新文学》风吹过,雨无痕
  9. 互联网金融大事件,从泛亚到e租宝敲响的警示钟?
  10. systemd service 指定目录 WorkingDirectory