SP端
//发起向ISMG连接并启动收发线程
public class SPServer {
private CMPPConntor conn;//CMPP连结对象
//保存接收到所有sp发来的submit消息队列
private List<MsgSubmit> submitsResult=new ArrayList();
//保存所有己发送的Deliver消息
private List<MsgDeliver> deliversResult=new ArrayList();
private String spPWD;
private String spId;
public SPServer(String spId,String spPWD){
this.spId=spId;
this.spPWD=spPWD;
}
/**
* 向ISMG端发送一条消息
* @param mobile:手机号
* @param spCode:sp号
* @param msg:消息内容
* @return:是否发送成功
*/
public boolean sendSubmit(String mobile,String spCode,String msg){
byte[] mb=msg.getBytes();
int msgLen=mb.length;
int totalLen=12+8+1+1+1+1+10+1+32+1+1+1+1+6+2+6+17+17+21
+1+32+1+1+msgLen+20;
MsgSubmit ms=new MsgSubmit();
ms.setTotal_Length(totalLen);
ms.setCommand_Id(MsgCommand.CMPP_SUBMIT);
ms.setSequence_Id(Utils.getSeq());
ms.setDest_terminal_Id(spCode);
ms.setSrc_Id(this.spId);
ms.setMsg_src(spCode);
ms.setMsg_Length((byte)msgLen);
ms.setMsg_Content(msg);
ms.setRegistered_Delivery((byte)0);
byte[] data=cn.netjava.cmpp.util.MsgTools.packMsg(ms);
//发送
return conn.sendMsg(data);
}
/**
* 返回己发送成功,即收到应答的Deliver消息
* @return
*/
public List<MsgDeliver> getRecvDeliver(){
java.util.List<MsgDeliver> dl=new ArrayList();
synchronized(this.deliversResult){
dl.addAll(deliversResult);
deliversResult.clear();
}
return dl;
}
/**
* 返回己发送成功的Submit消息
* @return
*/
public List<MsgSubmit> getSendedMsgSubmit(){
java.util.List<MsgSubmit> dl=new ArrayList();