socket 求解题思路
今天看到一个这样的题目
A和B两个系统都有表T_Test。
create table T_Test (
   tel varchar(20) NOT NULL COMMENT '电话号码',
   name varchar(100) COMMENT '姓名',
   address varchar(200) COMMENT '地址',
   email varchar(50) COMMENT '邮箱',
   PRIMARY KEY (tel)
);
B系统的数据来自于A系统,并且要和A系统的保持一致。
当A系统的数据发生变化时,A系统会主动通知B系统更新数据。接口如下:
接口名称:SyncData
接口编码:H1.1
功能描述: A系统T_Test表数据发生变动时,通过本接口通知B系统
接口提供方:B系统
调用场景:A系统 >> B系统
输入参数描述:
参数名称	出现次数	参数类型	备注
StreamingNo	1	VARCHAR2(10)	流水号。可用于调用/提供双方比较接口调用情况10位,从0开始,用满归零
TimeStamp	1	VARCHAR2(14)	时间戳.格式YYYYMMDDHHmmSS
Operate	1	SMALLINT	操作类型 1-新增 2-修改 3-删除
Tel	1	VARCHAR2(20)	电话号码
Name	0..1	VARCHAR2(100)	姓名,Operate=3时可空
Address	0..1	VARCHAR2(200)	地址,Operate=3时可空
Email	0..1	VARCHAR2(50)	邮箱,Operate=3时可空
输出参数描述:
参数名称	出现次数	参数类型	备注
StreamingNo	1	VARCHAR2(10)	流水号。将调用的StreamingNo原样返回,保证调用/返回的同步
ResultCode	1	SMALLINT	操作结果的代码。
0表示正常
-1表示错误(可自定义,给出说明)
ResultDetail	1	VARCHAR2(100)	简单的结果描述说明。
A系统和B系统之间通过socket进行通信,请求接口数据包格式如下:
项目	长度(BYTES)	说明
包开始标志	4	内容恒定为 ”FFFF”
包长度	6	包长度为整个包长度,数字转换成字符串,长度不足在左边补字符串‘0’
包的标识号	10 	流水号(即接口协议的StreamingNo)长度不足在左边补字符串‘0’
时间戳	14	即接口协议的TimeStamp,格式为YYYYMMDDHHmmSS
操作的类型	1	即接口协议的Operate:1:新增,2:修改,3:删除
参数个数	2	数字转换成字符串,左补字符串‘0’
包体	可变长度	结构参见下面的描述
包体由【参数个数】个以下的结构组成。KEY和SIZE的定义见下表定义:
?	KEY : 3字节(参数id)
?	SIZE: 3字节(数字转换成字符串,左补字符串‘0’)
?	VALUE: SIZE字节的参数值
KEY值	说明
000	电话号码
001	姓名
002	地址
003	邮箱
接口数据例子:
FFFF 000096000000000 12011081512131410400001 102038631234001004test002011 addresstest003009emailtest
返回消息数据包格式如下:
项目	长度(BYTES)	说明
包开始标志	4	内容恒定为 ”FFFF”
包长度	6	包长度为整个包长度,数字转换成字符串,长度不足在左边补字符串‘0’
包的标识号	10 	流水号(即接口协议的StreamingNo)长度不足在左边补字符串‘0’
请求执行结果标识	4	即接口协议ResultCode,数字转换成字符串,左补字符串‘0’
结果描述字符串	可变长度	由SIZE+VALUE结构组成:
SIZE:3字节(数字转换成字符串,左补字符串‘0’)
VALUE:SIZE字节的参数值
返回接口数据例子:
FFFF00003400000000010000007success
1.	实现B系统,能接收来自A系统的消息,并更新T_Test表数据
a)	B系统是一个socket server,接收数据请求并实现数据库更新操作,并将处理结果返回给调用者(提示:socket通信可用cindy实现)。
b)	考虑如何处理A和B存在数据不一致的情况,并说明这样处理的理由。例如:A通知B新增一条数据,但B系统已经存在同主键的数据;或A通知B修改/删除一条数据,但B中不存在该数据。
c)	能同时处理多个数据请求(提示:多线程)
2.	用java写一个client 客户端,模拟A系统发送数据更新请求。
3.	写出单元测试的代码,以及用到的测试数据
a)	设计单元测试用的测试数据;对所用的每组测试数据,说明测试的目的
b)	考虑并发的测试
这个题目的接口数据包格式看的不是很明白,
我的思路是:在B这个server里面,可以实时的查看A系统有没有SyncData接口的条用,如果有的话在根据具体的参数做具体的数据库操作。  
请大神们指教下是否正确。。。
------解决方案-------------------- 帮你顶一下  学习
------解决方案-------------------- 帮楼主顶一下!
------解决方案-------------------- CSDN不帮做作业~~
------解决方案-------------------- 
探讨  我的思路是:在B这个server里面,可以实时的查看A系统有没有SyncData接口的条用,如果有的话在根据具体的参数做具体的数据库操作。  请大神们指教下是否正确。。。