开发需要,由我用Java来编写一个中间层程序,即Application Server。功能主要就是接收客户端的请求,将该请求发送到服务端,然后将服务端返回的结果返回给客户端。服务端的接口是公开的,基于CORBA构件标准的。比如取个人基本信息
GRJBXX getPersonInfo(string IDCardNo,string operator,string password,string opername);即传入个人的身份证号,当前操作员的代码、姓名和密码,返回个人基本信息结果。
客户端程序是用C#写的,这样,我事先也是在c#中定义一个相同传入传出参数的方法,方法的实现,主要就是:通过socket与中间层建立连接,然后将4个输入参数传给中间应用服务器,将返回个人基本信息结果。
现在,我的问题是:这4个参数怎么通过socket发送给中间层?一个一个发送呢?还是合并成一个string来发送?
如果采用的合并的方式,到了中间层通过什么来拆分?同样,个人基本信息结果怎么从中间层返回给客户端?
以前没有写过socket通信程序,见笑了。
GRJBXX getPersonInfo(string IDCardNo,string operator,string password,string opername);即传入个人的身份证号,当前操作员的代码、姓名和密码,返回个人基本信息结果。
客户端程序是用C#写的,这样,我事先也是在c#中定义一个相同传入传出参数的方法,方法的实现,主要就是:通过socket与中间层建立连接,然后将4个输入参数传给中间应用服务器,将返回个人基本信息结果。
现在,我的问题是:这4个参数怎么通过socket发送给中间层?一个一个发送呢?还是合并成一个string来发送?
如果采用的合并的方式,到了中间层通过什么来拆分?同样,个人基本信息结果怎么从中间层返回给客户端?
以前没有写过socket通信程序,见笑了。
<root>
<param1>value1</param1>
<param2>value2</param2>
<param3>value3</param3>
<param4>value4</param4>
</root>
可以这样设计:
int IDCardNo (4字节)
可变长的字段,则需要这样一种数据格式
id(int(4))length(int(4))content(读取的length的值)
即id代表是哪个字段,通过协议自己定,length代表你这个字段内容的长度,读取content时,需要通过length的值来读取对应字节即可。
通过这个结构来拼接一下三个字段的byte数组
string operator
string password
string opername当最终获取到一个byte数组,然后通过socket发送到另外一端,再以这种协议格式解码出来即可。