`
raymond.chen
  • 浏览: 1433491 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

长短信发送范例

    博客分类:
  • 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
3
0
分享到:
评论

相关推荐

    范例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...

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

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

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

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

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

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

    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反射机制允许在运行时检查和操作类、接口、字段和方法。在范例中,你可能会看到如何动态创建对象、调用方法和访问私有成员。 ...

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

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

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

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

    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