package com.ekun.sms.cmpp2;
import java.io.*;
import java.text.*;
import java.util.*;
import com.ekun.sms.common.BuffMemoUtil;
public class CmppApis
{
// boolean bDebug = true;
public CmppApis()
{
SPID = "";
CorpID = "";
SPPassword = "";
hostIp = "";
port = 0;
version = 32;
sversion = 0;
sock = null;
}
/*名称:nCMPP_SendDeliverRep
* 功能:发送CMPP_Deliver_Rep包
* 输入参数:无
*
* 输出参数:无
*
* 返回值:0:成功,-1:失败
*/
public int nCMPP_SendDeliverRep(RecCDeliverRep precDeliverRep)
{
if (precDeliverRep == null)
{
return -1;
}
CmppDeliverRep deliverRep = new CmppDeliverRep(sock);
deliverRep.setSequenceId(precDeliverRep.nSeqId);
deliverRep.setcmppDeliverRep(precDeliverRep.usMsgId,
precDeliverRep.ucResult);
int rescode = deliverRep.sendcmppDeliverRep();
return rescode;
}
/*名称:nCMPP_Connect
* 功能:登陆到ISMG
* 输入参数:无
*
* 输出参数:无
*
* 返回值:0:成功,-1:失败
*/
public int nCMPP_Connect()
{
int i;
int readcode = -1;
SimpleDateFormat formatter = new SimpleDateFormat("MMddHHmmss");
Date currentTime = new Date();
String dateString = formatter.format(currentTime);
if (hostIp == null)
{
return -1;
}
hostIp = hostIp.trim();
if (hostIp.length() == 0)
{
return -1;
}
if (port <= 0)
{
return -1;
}
if (sock != null)
{
sock.closeSock();
}
sock = new CmppSocket(hostIp, port);
int initcode = sock.InitialSock(timeout);
if (initcode < 0)
{
sock.closeSock();
return initcode;
}
CmppConnect connect = new CmppConnect(sock);
synchronized (sock)
{
connect.setSequenceId(sock.seq);
sock.seq++;
}
connect.setcmppConnects(SPID, SPPassword, version, dateString);
int rescode = connect.sendcmppConnect();
//System.out.println("rescode:"+rescode);
if (rescode < 0)
{
sock.closeSock();
return rescode;
}
CmppPacket packet = new CmppPacket(sock);
int CommandID; //包类型
byte bodybytes[];
bodybytes = new byte[18];
//读取CMPP_Connect_Rep包
if(packet.readPacket() < 0)
return -1;
CommandID = packet.getCommandID();
bodybytes = packet.getPacketBody();
int status;
String AuthenticatorISMG;
if (CommandID == CmppPacket.CMPP_Connect_REP)
{
CmppConnectRep connectRep = new CmppConnectRep(bodybytes, 18);
status = connectRep.getStatus();
AuthenticatorISMG = connectRep.getAuthenticatorISMG();
sversion = connectRep.getVersion();
readcode = status;
//System.out.print("connect resp: status=" + status + " serverVersion=" + sversion);
if (status != 0)
{
sock.closeSock();
return readcode;
}
else
{
return 0;
}
}
return readcode;
}
/*名称:nCMPP_Terminate
* 功能:退出
* 输入参数:无
*
* 输出参数:无
*
* 返回值:0:成功,-1:失败
*/
public int nCMPP_Terminate()
{
if (sock == null)
{
return -1;
}
/*
CmppTerminate terminate = new CmppTerminate(sock);
synchronized (sock)
{
terminate.setSequenceId(sock.seq);
if (sock.seq == 2147483647)
{
sock.seq = 2;
}
}
int rescode = terminate.sendTerminate();
if (rescode < 0)
{
return rescode;
}
CmppPacket packet = new CmppPacket(sock);
int CommandID; //包类型
int readcode = packet.readPacket();
CommandID = packet.getCommandID();
*/
int code = sock.closeSock();
return code;
}
public int nCMPP_PrepSubmit
(
RecCSubmit precSubmit,
byte usMsgId[],
int ucPkTotal,
int ucPkNumber,
int ucRegisterDelivery,
int ucMsgLevel,
String sServiceId,
int ucFeeUserType,
String sFeeTerminalId,
int ucTpPid,
int ucTpUdhi,
int ucMsgFmt,
String sMsgSrc,
String sFeeType,
String sFeeCode,
String sAtTime,
String sSrcTerminalId,
String usReserve
)
{
if (precSubmit == null)
{
return -1;
}
precSubmit.usMsgId = usMsgId;
precSubmit.ucPkTotal = ucPkTotal;
precSubmit.ucPkNumber = ucPkNumber;
precSubmit.ucRegister = ucRegisterDelivery;
precSubmit.ucMsgLevel = ucMsgLevel;
precSubmit.sServiceId = sServiceId;
precSubmit.ucFeeUserType = ucFeeUserType;
precSubmit.sFeeTermId = sFeeTerminalId;
precSubmit.ucTpPid = ucTpPid;
precSubmit.ucTpUdhi = ucTpUdhi;
precSubmit.ucMsgFmt = ucMsgFmt;
precSubmit.sMsgSrc = sMsgSrc;
precSubmit.sFeeType = sFeeType;
precSubmit.sFeeCode = sFeeCode;
precSubmit.sAtTime = sAtTime;
precSubmit.sSrcTermId =sSrcTerminalId;
precSubmit.usReserve = usReserve;
return 0;
}
Vector parseAllSubscribers(String sDestTerminalId)
{
if (sDestTerminalId == null)
{
return null;
}
Vector vk = new Vector();
for (; ; )
{
char sign = ',';
int first = sDestTerminalId.indexOf( (int) sign);
if (first == -1)
{
break;
}
String subsId = sDestTerminalId.substring(0, first);
vk.addElement(subsId.trim());
sDestTerminalId = sDestTerminalId.substring(first + 1);
//System.out.println("leave :"+tmo );
}
vk.add(BuffMemoUtil.addMobilePrefix86(sDestTerminalId.trim()));
return vk;
}
static int getSendtimes(int data_coding, int nMessageLen)
{
//System.out.println("len:"+message.length);
int msglength;
if (data_coding == 0)
{
msglength = maxMsgLenAscii;
}
else
{
msglength = maxMsgLenOther;
}
int n = nMessageLen / msglength;
if((nMessageLen % msglength) > 0)
n++;
return n < 30 ? n : 30;
}
/*名称:nCMPP_SendSubmit
* 功能:发送CMPP_Submit包
* 输入参数:precSubmit:参照RecCSubmit的定义
* sValidTime:
* sDestTerminalId
* nMsgLen
* usMsgContent
* 输出参数:precSubmit
*
* 返回值:>0:发送的次数,-1:参数出错 -7:没有连接到ISMG -2:目的手机地址为空
*/
public int nCMPP_SendSubmit
(
RecCSubmit precSubmit,
String sValidTime,
String sDestTerminalId,
int nMsgLen,
byte[] usMsgContent)
{
//参数检查
if ( (precSubmit == null) || (sDestTerminalId == null) || (usMsgContent == null))
{
return -1;
}
if (sDestTerminalId.length() == 0)
{
return -1;
}
//连路检查
if (sock == null)
{
return -7;
}
//消息格式
int msglength;
if (precSubmit.ucMsgFmt == 0)
{
msglength = maxMsgLenAscii;
}
else
{
msglength = maxMsgLenOther;
}
precSubmit.sValidTime = sValidTime;
precSubmit.sDstTermId = BuffMemoUtil.addMobilePrefix86(sDestTerminalId);
precSubmit.ucMsgLen = nMsgLen;
precSubmit.usMsgContent = usMsgContent;
int flag = 0; //设置ucPkTotal和ucPkNumber的标志
switch (precSubmit.ucTpUdhi)
{
case 0:
if ( (precSubmit.ucPkTotal == 0) && (precSubmit.ucPkNumber == 0))
{
flag = 1; //API设置ucPkTotal和ucPkNumber
}
if ( (precSubmit.ucPkTotal > 0) && (precSubmit.ucPkNumber > 0))
{
if (precSubmit.ucPkTotal >= precSubmit.ucPkNumber)
{
flag = 0; //用户设置ucPkTotal和ucPkNumber
}
else
{
return -9; //参数错
}
}
break;
c
没有合适的资源?快使用搜索试试~ 我知道了~
java短信系统SMS,可发wap push
共246个文件
class:77个
java:73个
scc:12个
5星 · 超过95%的资源 需积分: 10 88 下载量 61 浏览量
2008-06-18
09:46:44
上传
评论 3
收藏 1.36MB RAR 举报
温馨提示
支持普通短信、长短信和wap push短信的发送。
资源推荐
资源详情
资源评论
收起资源包目录
java短信系统SMS,可发wap push (246个子文件)
sms.log.2008-03-11 9KB
db.ini.bak 452B
log4j.properties.bak 323B
a.bat.bak 24B
runjxt.bat 528B
runSMS.bat 242B
a.bat 24B
CmppApis.class 18KB
CmppLinker.class 16KB
MD5.class 7KB
DBConfigure.class 7KB
BuffMemoUtil.class 6KB
StringUtils.class 6KB
CmppSubmit.class 6KB
XMLDataObject.class 6KB
WAPPushSmsConstructor.class 6KB
OutSendTask.class 5KB
JdbcConnectionPool.class 5KB
CmppCommon.class 4KB
DBManager.class 4KB
OutsmsDAO.class 4KB
CmppDeliver.class 4KB
OutsmsDAO.class 4KB
SlipWindowCtrl.class 4KB
MtDAO.class 3KB
SmsMsgHandler.class 3KB
ReceiptDAO.class 3KB
MoDAO.class 3KB
DateTimeUtils.class 3KB
JxtMain.class 3KB
CmppConnect.class 3KB
SequenceGenerator.class 3KB
MoCache.class 3KB
CmppQueryRep.class 3KB
CmppSocket.class 3KB
CmppLinker$RecvTrd.class 2KB
LoggerImpl.class 2KB
CmppLinker$ReSendTrd.class 2KB
ClearDBResource.class 2KB
CmppQuery.class 2KB
CmppPacket.class 2KB
CmppActiveTestRep.class 2KB
MtCache.class 2KB
FileUtils.class 2KB
SmsInfo.class 2KB
OutsmsVO.class 2KB
CmppDeliverRep.class 2KB
Base64.class 2KB
DefaultCmppMsgHandler.class 2KB
CmppCancel.class 2KB
ReceiptVO.class 2KB
CmppTerminate.class 2KB
CmppTerminateRep.class 2KB
DBUtils.class 2KB
CmppActiveTest.class 1KB
XMLStringFilter.class 1KB
MoVO.class 1KB
MtVO.class 1KB
RecCCmppPacket.class 1KB
CmppConnectRep.class 1KB
LoggerFactory.class 1KB
DBAccessException.class 1003B
CmppSubmitRep.class 803B
RecCSubmit.class 788B
MD5State.class 758B
RecCDeliver.class 585B
CmppCancelRep.class 584B
RecCQueryRep.class 540B
Logger.class 478B
RecCDeliverRcpt.class 475B
RecCConnect.class 421B
RecCQuery.class 415B
RecCConnectRep.class 411B
RecCDeliverRep.class 372B
RecCSubmitRep.class 369B
RecCVerInfo.class 365B
RecCActiveTestRep.class 358B
RecCCancelRep.class 346B
RecCCancel.class 341B
RecCTerminateRep.class 336B
RecCActiveTest.class 330B
RecCTerminate.class 327B
CmppMsgHandler.class 305B
CmppLinker$0.class 211B
com.ekun.sms.cmpp2.dep2 39KB
com.ekun.common.sms.dep2 14KB
com.ekun.common.util.dep2 13KB
com.ekun.common.db.dep2 11KB
com.ekun.biz.dao.dep2 9KB
com.casin.biz.dep2 8KB
com.ekun.biz.sms.dep2 6KB
com.ekun.common.log.dep2 4KB
com.ekun.biz.vo.dep2 3KB
com.ekun.sms.common.dep2 2KB
JavaSMS.index 57KB
CMPP31.ini 767B
db.ini 454B
cmpp.ini 322B
复件 cmpp.ini 301B
mysql-connector-java-3.2.0-alpha-bin.jar 394KB
共 246 条
- 1
- 2
- 3
资源评论
- yanping09122013-09-26刚刚下载,还不 知道怎么用..
- tws672013-11-06学习cmpp协议和wap协议不错
- Lowessd2018-11-21WAP协议还行
zhangzao
- 粉丝: 4
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深度学习基于卷积神经网络的人脸面部表情识别项目源码+面部表情数据集+训练好的模型(人脸面部表情识别项目).zip
- 4f76dd1f4d0bea09663e536fd2297540.txt
- React项目基于JavaScript实现的全球新闻发布管理系统源码.zip
- 基于keras+fasterRCNN,在VOC格式的口罩数据集上训练,检测人群中有无戴口罩python源码+模型
- 基于opencv+qt5机器视觉的传统缺陷检测, 即采用标准图片和待测图片进行pixel to pixel的XOR操作源码+文档
- 管道内检测缺陷数据库管理系统源码+文档说明+sln
- 毕业设计-低功耗STM32F411开发板(原理图+PCB源文件+官方例程+驱动等)源码+文档说明+截图
- 基于yolov5-tensorRT检测+发动机缸体内壁缺陷检测系统源码+文档说明
- 基于C++实现的锂电池缺陷检测源码+文档说明
- push_version
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功