`

长短信发送范例

    博客分类:
  • java
 
阅读更多

一、关键代码:

private synchronized void sendSMS(List list, String isDone)throws Exception{
	for(int i=0;i<list.size();i++){
		String[] oneSMS = (String[])list.get(i);
		if(oneSMS.length == 3){
			String rcvMobile[] = new String[1];
			rcvMobile[0] = oneSMS[1];
			String sm = oneSMS[2].trim();
				
			int returnInt = -1;
			if(sm.length()<=70){
				returnInt = send(getShortSubmitMessage(sm.getBytes("UnicodeBigUnmarked"), rcvMobile));
			}else{
				returnInt = sendLongMessage(rcvMobile, sm); //发送长短信
			}
			
			if(returnInt==0){
				database.updateSMS(oneSMS[0],String.valueOf(returnInt),"1");
			}else{
				database.updateSMS(oneSMS[0],String.valueOf(returnInt),isDone);
			}
		}
	}
}

public int send(CMPPSubmitMessage msg) {
	int returnInt=11;
	if(msg == null)
		returnInt= 10;
	CMPPSubmitRepMessage reportMsg = null;
	try {
		reportMsg = (CMPPSubmitRepMessage)super.send(msg);
		returnInt=reportMsg.getResult();
	} catch(IOException ex) {
		System.err.println(ex.toString());
		ex.printStackTrace();
		returnInt=11;
	}
	return returnInt;
}private int sendLongMessage(String[] mobiles, String contentMessage){
 int result = 0;
 
 try{
  List msgList = divideMessage(contentMessage);
  int msgCount = msgList.size();
  
  byte[] tp_udhiHead = new byte[6]; 
  tp_udhiHead[0]=0x05; 
  tp_udhiHead[1]=0x00; 
  tp_udhiHead[2]=0x03; 
  tp_udhiHead[3]=0x0A; 
  tp_udhiHead[4]=(byte)msgCount; 
  tp_udhiHead[5]=0x01;
  
  for(int i=0;i<msgCount;i++){ 
   String msg = (String)msgList.get(i);
   tp_udhiHead[5]=(byte)(i+1); 
   byte[] msgContent = byteAdd(tp_udhiHead, msg.getBytes("UnicodeBigUnmarked"));
   
   CMPPSubmitMessage cmppSubmitMessage = new CMPPSubmitMessage(
     msgCount,
     (i+1),
     registered_Delivery,
     msg_Level,
     service_Id,
     fee_UserType,
     fee_Terminal_Id,
     tp_Pid,
     1,
     8,
     msg_Src,
     fee_Type,
     fee_Code,
     new Date(System.currentTimeMillis() + (long)0xa4cb800),
     null,
     src_Terminal_Id,
     mobiles,
     msgContent, 
     "");
   
   result += send(cmppSubmitMessage);
   
  }
  
 }catch (Exception e){ 
  result=-1; 
  e.printStackTrace();
 } 
 
 return result;
}
private static List divideMessage(String msg){
 int maxLen = 67; 
 List msgList = new ArrayList();
 
 while(msg.length()>maxLen){
  msgList.add(msg.subSequence(0, maxLen));
  msg = msg.substring(maxLen);
 }
 msgList.add(msg);
 
 return msgList;
}
private static byte[] byteAdd(byte[] src, byte[] add){ 
 byte[] dst = new byte[src.length+add.length]; 
 for(int i=0;i<src.length;i++){
  dst[i]=src[i]; 
 } 
 for(int i=0;i<add.length;i++){ 
  dst[src.length+i]=add[i]; 
 } 
 
 return dst; 
} 

 

  • 大小: 113.9 KB
分享到:
评论

相关推荐

    单片机C51串口中断接收和发送范例

    用中断来实现串口通信//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样

    医学专业生求职自荐信投稿范例.pdf

    医学专业生求职自荐信投稿范例

    辞职信-辞职信的范例范文最新.docx

    很抱歉,但根据提供的文件信息,标题和描述中提到的是“辞职信”的范例,并非IT行业的专业知识。尽管标签中有“安全管理”,但文档内容并未涉及任何与IT安全相关的知识点。主要内容是关于个人辞职的信件样本,包含了...

    VC 发送和接收邮件多个范例代码.rar

    多代码范例演示VC 如何编写邮件发送和接收程序,包括了pop发送邮件,邮件发送高级编程、简单邮件发送等三个例子。有简单的有复杂的,对于VC初学者来说,绝对 是相当不错的学习范例。友情提示:为了调试方便,程序...

    大学生自荐信怎么写|大学生优秀自荐信范例.docx

    本文档主要讨论大学生自荐信的写作技巧和范例,旨在帮助大学生在求职过程中更好地展示自己。下面是对该文档的详细分析和知识点总结: 一、自荐信的重要性 自荐信是大学生在求职过程中不可或缺的文件,它是展示自己...

    2021新年慰问信范例.pdf

    2021新年慰问信范例.pdf

    写给幼儿园老师的感谢信范例-条据书信.docx

    根据给定文件的要求,本文将从“写给幼儿园老师的感谢信范例-条据书信.docx”的标题、描述、部分内文中提炼出相关的知识点。虽然该文档与信息技术(IT)领域并不直接关联,但我们可以从文档管理和文档内容分析的角度...

    Word高效应用范例宝典

    同时,书里还会介绍如何使用邮件合并功能,批量生成个性化信件或报告,尤其适用于批量发送邀请函或通知。 除此之外,书中还可能包含关于协作和审阅的章节,讲解如何使用Word的评论、跟踪更改和版本控制功能,以便...

    SuperMap Objects 程序范例

    SuperMap Objects 范例程序参考 SuperMap Objects 2008 为广大用户提供了在五种开发语言下(VB6,VC++6,VB .NET2005,C# .NET2005,Delphi7)共240个详细的范例工程源代码及可执行程序,每个工程都是针对某一个或...

    检举信格式写法范例.doc

    检举信格式写法范例.doc

    邮件发送范例

    Java 实现邮件的自动发送,支持附件上传,标题编辑,正文内容书写

    2021计算机专业个人求职信范例.docx

    2021计算机专业个人求职信范例.docx

    10、推荐信汇总-2013中大夏令营推荐信参考范例.pdf

    1、你不可不知的保研常识 2、保研简历示范及模板 3、个人陈述 4、成绩证明 5、导师关注的素质(如何突出个性) 6、联系导师技巧 7、珍贵的前辈保研经历 8、面试 ...10、推荐信汇总 11、个人保研材料合集示范

    关于事业单位辞职信范例集锦.doc

    1. 辞职信的基本结构:辞职信通常包含开头的问候、辞职原因、感谢表达、承诺完成剩余工作、请求离职手续办理、结尾的祝愿等部分。以上三个范例均遵循了这一结构,表明了辞职的决定,并对单位和同事表达了感激之情。 ...

    JAVA编程通用范例

    通用范例会演示如何建立客户端和服务端的连接,发送和接收数据。 7. **反射API**:Java反射机制允许在运行时检查和操作类、接口、字段和方法。在范例中,你可能会看到如何动态创建对象、调用方法和访问私有成员。 ...

    最新Excel VBA活用范例大辞典 光盘

    最新Excel VBA活用范例大辞典光盘 作 者:韩小良,周宁 编著 出 版 社:中国铁道出版社 内容简介 本书以大量的示例,详细介绍了利用Excel VBA操作Excel进而操作Windows的方法和技巧,包括操作管理Excel VBA常见...

    范例50范例50范例50范例50范例50范例50范例50范例50

    范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50范例50...

    ASP程序开发范例宝典(光盘源码)

    《ASP程序开发范例宝典(光盘源码)》是一部深入浅出的ASP编程教程,结合了实际的EMAIL和短信功能开发实例,为初学者和有经验的开发者提供了丰富的学习资源。本书主要涵盖以下几个核心知识点: 1. ASP基础:ASP...

    C语言通用范例开发金典.part1.rar

    范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷...

    c语言开发范例大全全部代码

    《C语言开发范例大全》是一本深受C语言学习者喜爱的教材,它以其丰富的实例和详尽的解析,为初学者和有经验的程序员提供了深入理解C语言的宝贵资源。这本书涵盖了C语言的基础概念、语法特性、高级编程技巧以及实际...

Global site tag (gtag.js) - Google Analytics