银行程序代发工资的方法

简介:
通Unix下C语言编程与项目实践》之十一
数据传输技术之字符串报文 
作者:朱云翔,胡平
 

18 数据传输技术之字符串报文

在计算机程序中经常需要进行数据交换,通常做法是先将要交换的数据按照一定的格式组合起来,再把这些组合数据作为一个整体传递给对方。这个经过组合的数据就是报文,每个要交换的数据就是数据域,将数据域组合成报文的过程称为报文组包或报文打包,从报文中提取出数据域的过程称为报文解包或者报文解析。
报文的组织形式多种多样,常见的有字符串报文、8583包报文、XML报文、结构报文等等,某些程序甚至可以定义自己的报文组织形式。

18.1 字符串报文简介

字符串报文就是由各种不同数据类型的数据域组合而成的一行字符,数据在组包前必须先要转化成字符串格式,然后才能构成字符串报文。同样的,字符串报文在解包时,也要先分解出字符串型的数据域,再将这些字符串转化为特定类型的数据值。

18.1.1 字符串报文类型

字符串报文是指将各种不同数据类型的数据域信息转化为字符串,再组合成一行字符的报文形式。根据报文中同一数据域每次所占用的字符字节数的情况,字符串报文可以分为以下几种:

1. 固定长度字符串报文

简称固定长度报文,报文中的每个数据域在报文中都占用某个特定的字节长度,不会随着数据域具体内容的变化而变化。如18-1是某个银行代发工资系统中固定长度字符串报文文件的例子:
18-1  固定长度字符串报文
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
1
9
5
5
9
9
0
1
0
9
9
9
9
9
z
y
x
 
 
 
 
 
 
 
 
1
2
3
4
.
2
1
2
5
3
5
9
1
0
1
0
9
8
8
 
 
h
u
p
i
n
g
 
 
 
 
1
9
7
3
2
.
0
1
1
卡号域, 13 个字节长度
姓名域, 6 字节
资金域, 12 字节
以上每条报文均长32个字节,分为4个数据域,每个域的含义如表18-2所示:
18-2  固定长度字符串报文实例解析
编号
长度
说明
类型
第一行内容
第二行内容
1
1
行序号
整型
1
2
2
13
卡号
字符串
9559901099999
53591010988
3
6
姓名
字符串
zyx
huping
4
12
资金
浮点型
1234.21
19732.01

2. 固定分隔字符串报文

简称固定分隔报文,报文中的每个数据域在报文中占用的字节长度不固定,域与域之间通过某个特定的字符串来分隔,如表18-3是由字符串“|分隔的报文实例。
18-3  固定分隔字符串报文
以上报文与表18-1中的固定长度报文描述的是同一实例,但此处第1条报文长26字节,第2条报文长28字节,可见固定分隔字符串报文的每条报文长度并不一致,同时每个数据域中一般不会有多余的空格。

3. 混合格式字符串报文

简称组合报文,它混和了前两种报文的组织格式,一般有三种表现形式:
(1) 固定长度报文中某数据嵌套一个固定分隔报文,如表18-4所示;
18-4  固定长度报文嵌套固定分隔报文
整个报文全长28个字节,共分为3个数据域。其中第二个数据域长15个字节,由一个固定分隔报文组成。这个固定分隔报文以字符串“,”分隔开,共两个域,第一个域表示姓名,第二个域表示资金。
(2) 固定分隔报文中某数据域嵌套一个固定长度报文,如表18-5所示:
18-5  固定分隔报文嵌套固定长度报文
1条报文长29个字节,第2条报文长27个字节,共分为3个数据域。其中第二个数据域由一个固定长度报文组成,这个固定长度报文分为两个域:第一个域表示姓名,共6个字节;第二个域表示资金,共8个字节。
(3) 固定长度报文的数据域之间由字符串之间通过某个特定的字符串来分隔,如表18-6是由字符串“|”分隔的报文实例:
18-6  固定字符串分隔的固定长度报文
整个报文全长22个字节,共分为3个数据域,每个域分别长4字节、6字节和10字节,域与域之间通过字符串“|”分隔。

18.1.2 字符串报文传送方式

字符串报文具有简单和便于理解的特点,因此被广泛的运用于实际的数据传送中。一般来讲,字符串报文的传送有两种最常见的方式:报盘方式和实时交易方式:

1. 报盘方式

本方式一般应用于批量业务中。比如某单位委托银行为其员工代发工资,单位将先把每个员工的工资信息组包成一条字符串报文,然后把这些报文合写在一个文件中,最后把这个文件通过手工或自动FTP等方式传送给银行。银行则解析此文件中的每一条报文信息,然后执行批量代发业务。

2. 实时交易方式

本方式一般应用于零星业务中。比如每当有交易发生时,ATM都将交易的基本信息组包成一条字符串报文,然后将这个字符串通过套接字通信等方式发送到银行主机。银行主机则解析此条报文信息,再执行相应的交易。
 


 本文转自 zhuyunxiang 51CTO博客,原文链接:http://blog.51cto.com/zhuyunxiang/139505,如需转载请自行联系原作者

相关文章
|
4月前
|
机器人
用八爪鱼RPA实现员工薪资管理,轻松拆分发放工资单!
RPA(机器人流程自动化)技术可以极大地压缩、优化现有的员工薪资管理流程。通过使用rpa机器人,可以自动化个税计算和申报,自动化工资单处理和发放等重复性、繁琐的任务。这样可以节省大量人力和时间,提高工作效率,减少错误和延误,提升员工满意度。同时,rpa还可以保证数据的准确性,提高工资管理的合规性,增强企业的信誉。
|
程序员 PHP 敏捷开发
一个PHP程序员,想要从月薪1万元变成月薪5万元,他应该怎么做?
一个PHP程序员,想要从月薪1万元变成月薪5万元,他应该怎么做?
105 0
|
程序员 PHP 项目管理
一个PHP程序员,想要从月薪1万元变成月薪2万元,他应该怎么做?
一个PHP程序员,想要从月薪1万元变成月薪2万元,他应该怎么做?
101 0
程序人生 - 还在跑网点开通按月转账?网上都能办啦!
程序人生 - 还在跑网点开通按月转账?网上都能办啦!
65 0
程序人生 - 还在跑网点开通按月转账?网上都能办啦!
|
存储
关于网店转让,需要注意的地方
网店转让必须签署合同,方可转让。买方付款后,卖方必须立即停止商店运营,并在此时将商店状态的屏幕快照上载到平台以离开证书,等待转让,以及在线专员将以电子方式通知网店交易合同,并将其发送给卖方。卖方仔细阅读合同条款,并打印三份正确的合同。
440 0
【转】最全网上纳税申报流程
现在无论是增值税纳税申报还是地方附加税费均可以在网上申报了,无需到税务局申报缴纳,这个不是太难。基本上每个税务局针对当地的网上申报流程都有说明,也有相关的培训。基本流程如下: 网上纳税申报步骤: (第一步)填写申报表:利用“填写申报表”功能填写需申报的申报表。
1755 0
|
安全 网络安全
我们卧底恶意买家群,发现商家是这样被坑惨的!
线上流氓”猖狂,商家和消费者不堪其扰,阿里呼吁像治理雾霾一样治理网络黑灰产。“新枫桥经验”会带来什么?
2315 0