当前位置: 代码迷 >> Java相关 >> socket 请求的施用
  详细解决方案

socket 请求的施用

热度:4273   发布时间:2013-02-25 21:42:59.0
socket 请求的使用!
有一份接口文档,采用socket方式进行数据通信,第三方系统通过提交socket请求,完成查询操作。客户端接收数据时,数据类型为length+value,length的长度是5位。对于这个socket我知道的不是很多,不知道怎么使用,如何发送请求、接收数据。

文档中样例:
请求格式与参数:
例如:
TradeId=2&TradePwd=1234567890&TradeCode=Trd00001&TradeOrdId=12345678&CityId=1&CarryNodeStaId=0&Date=2010-3-18&StopId=9056&PersonalKey=abcdef1234567890
请求参数 长度 说明 必填 备注
TradeId <=10 商户ID  Y 例如:2
TradePwd <=20 商户交易密码 Y 例如:11111111111111
TradeCode <=20 商户交易代码 Y 必须是:Trd00001
TradeOrdId <=30 商户交易订单 Y 例如:12345678
CityId =1 归属城市 Y 必须是:0 表示杭州
CarryNodeStaId =4 始发站点 Y 例如:9992
Date =19 班次日期发 Y 例如:2010-03-17 00:00:00
StopId =4 到达站点 Y 例如:4108
PersonalKey <=40 私钥 Y 例如:abcdef1234567890


应答格式:
例如:其中前5位为后面应答数据的长度
3800 'RtnCode=0&RtnErrMsg=&TradeId=2&TradeCode=Trd000
01&TradeOrdId=12345678&SellTkNum=32&SellTkInfo=9992,9992,杭州西站,2010-3-17,4711
,2010-3-17,2010-3-17 7:20:00,7,167,45,0,22.5,0,22.5,0,45,0,0,0,3,0,0,3,0,0,千岛
湖,大高1,杭州西站-千岛湖,2010-3-17 7:20:00,普通,0|9992,9992,杭州西站,2010-3-17,4
969,2010-3-17,2010-3-17 7:40:00,14,167,60,0,30,0,30,0,60,0,0,0,3,0,3,3,0,0,淳安,
中高2,杭西-千岛湖(快),2010-3-17 7:40:00,快客,-1|………..  
返回参数 长度 说明 必填 备注
RtnCode <=5 查询返回结果状态 Y 例如:0 表示成功 -1表示失败
RtnErrMsg <=300 交易异常说明 Y 例如:没有符合条件记录 
TradeId <=10 商户ID  Y 例如:2
TradeCode <=20 商户交易代码 Y 必须是:Trd00001
TradeOrdId <=30 商户交易订单 Y 例如:11111111111111
SellTkNum <=5 返回班次个数 Y 例如:32
SellTkInfo <=1024*6 返回班次信息列表 Y 例如:……..



具体怎样把这些参数通过scoket请求发送到服务端,怎样建立连接,又是怎样接收数据,对于接收到的参数又该怎么处理比较方便,有没有要特别注意的地方。最好能附加一些代码或详细的讲解,谢谢大家的帮忙!发送时直接当作文本串发送,然后以回车符结束“\n”

读取时可以用BufferReader进行包装,然后直接 readLine(); 就可以读取到完整的内容了。

至于逐个参数的解析,你可以先用 split("&") 将其拆分,然后再逐个处理,也不算复杂。
  相关解决方案