首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
ASP | ASP.NET | JSP | PHP | AJAX | XML | Java script | HTML/CSS | 服务器类
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> WEB开发 >> WEB开发 >> 正文
基于CMPP2及东软API短信平台的开发
ChinaItLab  2005-1-6  保存本文    收藏本站


  本平台针对网关开发。
  
  东软API不知道是什么版本的,源代码出现某个错误,某数组允许长度64,API文档里也说明是64,可是它是65。破解之,改之,重新编译之,无问题。
  
  API文档里示例程序也有若干错误,很奇怪,既然是对外发布的版本,居然没有一条注释,改之,现在调试运行没有问题,可以发送短信。
  
  下面提供的只是个简单的示例,要强调一些细节。假设你把API放在d:\message\com\commerceware\cmpp\ 目录下,我的示例也在改目录下,那么编译和运行请转到message目录下
  
  编译javac -classpath D:\message\ f:\message\com\commerceware\cmpp\Test.java
  运行java com.commerceware.cmpp.Test 13711111111 我爱ABC
  
  运行时第一个参数是对方手机号,第二个参数是发送内容。以下是程序内容,登陆IP和用户名密码等我已隐藏。但程序是正常的,你首先需要申请一个SP的资格:
  package com.commerceware.cmpp;
  
  public class Test{
  
  public void readPaME(conn_desc con)
  {
  cmppe_result cr = null;
  CMPP cp = new CMPP();
  try{
  cr = cp.readResPack(con);
  System.out.println("cr.pack_id=" + cr.pack_id);
  switch(cr.pack_id)
  {
  case CMPP.CMPPE_NACK_RESP:
  
  
  System.out.println("CMPP.CMPPE_NACK_RESP:get nack pack");
  break;
  
  case CMPP.CMPPE_LOGIN_RESP:
  cmppe_login_result cl;
  cl = (cmppe_login_result)cr;
  
  
  System.out.println("CMPP.CMPPE_LOGIN_RESP:login resp: STAT = "+cl.stat);
  break;
  
  case CMPP.CMPPE_LOGOUT_RESP:
  
  
  System.out.println("CMPP.CMPPE_LOGOUT_RESP:logout resp: STAT = "+cr.stat);
  break;
  
  case CMPP.CMPPE_SUBMIT_RESP:
  
  
  System.out.println("CMPP.CMPPE_SUBMIT_RESP");
  cmppe_submit_result sr;
  sr = (cmppe_submit_result)cr;
  cmppe_cancel cc1 = new
  
  cmppe_cancel();
  //cc1.set_msgid(new
  
  String(sr.msg_id)));
  cc1.set_msgid(new
  
  String(sr.msg_id));
  break;
  
  case CMPP.CMPPE_DELIVER:
  
  System.out.println("CMPP.CMPPE_DELIVER:deliver: STAT = 0");
  
  cmppe_deliver_result cd=
  
  (cmppe_deliver_result)cr;
  
  cp.cmpp_send_deliver_resp(con,cd.seq,cd.stat);
  break;
  
  case CMPP.CMPPE_CANCEL_RESP:
  
  System.out.println("CMPP.CMPPE_CANCEL_RESP:cancel: STAT = " + cr.stat);
  break;
  case CMPP.CMPPE_ACTIVE_RESP:
  
  System.out.println("CMPP.CMPPE_ACTIVE_RESP:active resp: STAT " + cr.stat);
  break;
  default:
  break;
  
  }
  }catch(Exception e)
  {
  System.out.println(e.getMessage());
  e.printStackTrace();
  System.out.println("have a exception");
  try{
  System.in.read();
  }catch(Exception e1){}
  
  }
  }
  
  public static void main(String[] args)
  {
  
  if(args[0] == null || args[0].equals("") || args[0].length() != 11){
  System.out.println("手机号码输入不正确");
  return;
  }
  if(args[1] == null || args[0].equals("") || args[1].length() == 0){
  System.out.println("没有输入短信内容");
  return;
  }
  
  CMPP p = new CMPP();
  Test t = new Test();
  char test[] = new char[10];
  byte short_msg[] = new byte[150];
  byte buf[] = new byte[40];
  byte b1[] = new byte[10];
  
  
  cmppe_submit sub = new cmppe_submit();
  cmppe_submit_result res =new cmppe_submit_result();
  cmppe_cancel can = new cmppe_cancel();
  
  byte icp_id[] = new byte[10]; //ICP隐藏
  icp_id[0] =0x**;
  icp_id[1] =0x**;
  icp_id[2] =0x**;
  icp_id[3] =0x**;
  icp_id[4] =0x**;
  icp_id[5] =0x**;
  icp_id[6] = 0;
  byte svc_type[] = new byte[6];
  svc_type[0] = 0x39;
  svc_type[1] = 0x34;
  svc_type[2] = 0x31;
  svc_type[3] = 0x30;
  svc_type[4] = 0;
  
  byte fee_type = 0;
  byte info_fee = 1;
  byte proto_id = 1;
  
  byte msg_mode = 1;
  byte priority =9;
  byte fee_utype = 2;
  byte fee_user[] = new byte[CMPP.CMPPE_MAX_MSISDN_LEN];
  for(int i=0; i<12; i++)
  fee_user[0] = 0x31;
  fee_user[1] = 0x33;
  fee_user[2] = 0x38;
  fee_user[3] = 0x30;
  fee_user[4] = 0x35;
  fee_user[5] = 0x30;
  fee_user[6] = 0x30;
  fee_user[7] = 0x31;
  fee_user[8] = 0x30;
  fee_user[9] = 0x36;
  fee_user[10]= 0x34;
  fee_user[11]= 0x0;
  
  byte validate[] = new byte[10];
  validate[0] =0;
  byte schedule[] = new byte[2];
  schedule[0] =0;
  byte src_addr[] = new byte[12];
  src_addr[0] = 0x31;
  src_addr[1] = 0x33;
  src_addr[2] = 0x38;
  src_addr[3] = 0x30;
  src_addr[4] = 0x35;
  src_addr[5] = 0x30;
  src_addr[6] = 0x30;
  src_addr[7] = 0x31;
  src_addr[8] = 0x30;
  src_addr[9] = 0x36;
  src_addr[10]= 0x34;
  src_addr[11]= 0x0;
  
  byte du_count = 1;
  byte dst_addr[][] = new byte[10][15];
  
  dst_addr[0][0] = toHex(args[0].charAt(0)); //CMPPE_MAX_MSISDN_LEN+1
  dst_addr[0][1] = toHex(args[0].charAt(1));
  dst_addr[0][2] = toHex(args[0].charAt(2));
  dst_addr[0][3] = toHex(args[0].charAt(3));
  dst_addr[0][4] = toHex(args[0].charAt(4));
  dst_addr[0][5] = toHex(args[0].charAt(5));
  dst_addr[0][6] = toHex(args[0].charAt(6));
  dst_addr[0][7] = toHex(args[0].charAt(7));
  dst_addr[0][8] = toHex(args[0].charAt(8));
  dst_addr[0][9] = toHex(args[0].charAt(9));
  dst_addr[0][10]= toHex(args[0].charAt(10));
  dst_addr[0][11]= 0x0;
  
  //byte data_coding = 1;
  byte data_coding = 15; //15为GB2312
  byte sm_len = 120;
  
  String ss = args[1];
  
  try{
  short_msg = ss.getBytes("GB2312");
  ss = new String(short_msg);
  }catch(Exception e){
  
  }
  System.out.println(short_msg.length);
  
  cmppe_result cr = new cmppe_result();
  cmppe_deliver_result rs = new cmppe_deliver_result();
  try{
  conn_desc con = new conn_desc();
  System.out.println("connecting...");
  p.cmpp_connect_to_ismg("111.111.111.111",7890,con); //登
  
  陆信息隐藏,SORRY哈
  System.out.println("ICP_ID:" + "******" + " ICP_AUTH:" + "**");
  p.cmpp_login(con,"*****","****",(byte)2,0x12,*******);
  t.readPaME(con);
  
  sub.set_icpid(icp_id );
  sub.set_svctype(svc_type);
  sub.set_feetype(fee_type );
  sub.set_infofee(info_fee);
  sub.set_protoid(proto_id);
  sub.set_msgmode(msg_mode );
  sub.set_priority(priority );
  sub.set_validate(validate);
  sub.set_schedule(schedule );
  sub.set_feeutype(fee_utype);
  sub.set_feeuser(fee_user);
  sub.set_srcaddr(src_addr );
  sub.set_dstaddr(dst_addr );
  sub.set_ducount(du_count);
  
  sub.set_msg(data_coding,short_msg.length,short_msg );
  p.cmpp_submit(con,sub);
  t.readPaME(con);
  p.cmpp_active_test(con);
  t.readPaME(con);
  
  p.cmpp_logout(con);
  t.readPaME(con);
  
  }catch(Exception e)
  {
  System.out.println(e.getMessage());
  e.printStackTrace();
  System.out.println("have a exception");
  try{
  System.in.read();
  }catch(Exception e1)
  {
  }
  return;
  }
  }
  
  public static byte toHex(char c){
  switch(c){
  case ?':
  return 0x31;
  case ?':
  return 0x32;
  case ?':
  return 0x33;
  case ?':
  return 0x34;
  case ?':
  return 0x35;
  case ?':
  return 0x36;
  case ?':
  return 0x37;
  case ?':
  return 0x38;
  case ?':
  return 0x39;
  case ?':
  return 0x30;
中国IT教育热线咨询
相关文章
Flash+PHP+Mysql简单留言本制作实例教程
基础知识:Java Web三层架构的配置详解
使用AJAX技术构建更优秀的Web应用程序
ASP应用程序设计的Web状态管理分析
Ajax驱动的Web站点
最新文章
·Ajax光环背后的隐患
·Windows操作系统下JSP程序开发环
·如何在Java程序中实现FTP的上传下
·Java应用:编写高级JavaScript应
·初学者学习java第一步——JDK环境
 文章评论

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
ASP.NET ASP PHP JSP
·ASP.NET开发中的八个最佳实践09-21
·ASP.NET开发中的验证码技术09-18
·控件开发asp.net处理标签间内容09-18
·程序员成为成为编程高手的二十二条军规09-18
·VS 2005和ASP.NET 2.0中处理CSS样式表09-17
·如何有效监控.NET应用程序09-16
·浅析ASP.NET 2.0 Client Callback09-16
·探讨ASP.NETMVC框架内置AJAX支持编程技术09-15
·ASP.NET2.0的URL映射的实现方法09-13
·Java\.net\PHP比较 程序员眼中的.Net世界09-12
·asp.net中实现观察者设计模式09-12
·谈JSP与XML的交互09-01
·ASP连接11种数据库语法总结09-01
·如何利用ASP实现邮箱访问09-01
·ASP随机数的应用技术09-01
·定时使用DWRUtil.addRow生成表格08-27
·ASP申请单动态添加实现方法及代码08-27
·关于ASP中脚本执行顺序的讲解08-25
·ASP程序实现网页伪静态页源代码08-25
·ASP如何调用webservice08-22
·ASP实例:读取xml文件的程序08-14
·Asp组件检测函数08-11
·Linux系统下让PHP提高性能的工具APC05-06
·一个完整、安全的PHP用户登录系统11-14
·Apache+PHP+MySQL建立数据库驱动的动态网站08-24
·用SSH与PHP相连接 确保数据传输的安全性08-23
·PHP5手动最简安装方法08-03
·PHP程序加速探索之服务器负载测试07-11
·完全讲解PHP+MySQL的分页显示示例分析05-30
·用Suhosin加强PHP脚本语言安全性05-26
·初学入门 PHP 和 MySQL05-17
·传奇的诞生 PHP三位创始人简介05-10
·大型系统上PHP令人不爽的九大原因05-10
·JSTL中fn表达式的使用说明09-18
·JSP Web框架研究:Struts09-16
·JSF在GlassFish管理控制台中的应用09-12
·介绍JSP程序动态网站环境搭建的详细步骤09-12
·Jsp页面中文参数传递get和post方法分析09-12
·Java\.net\PHP比较 程序员眼中的.Net世界09-11
·JavaScript最常用的55个经典技巧09-08
·Windows操作系统下JSP程序开发环境配置09-03
·JSF点滴积累--权限验证09-03
·小小分页帮助程序08-29
·经验分享全过程JSP程序员完全蜕变手册08-27
  培训中心
人才交流中心 技术交流中心
  ITLab技术交流平台: