| 
					
				 | 
			
			
				@ -0,0 +1,419 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.sms.util; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.jasson.im.api.APIClient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.jasson.im.api.MOItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.jasson.im.api.RPTItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.BufferedReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.InputStreamReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Random; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.StringTokenizer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Vector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * 中山医院短信发送工具类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author huangwenjie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class ZhongShanSMSUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String cmd = "11"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String mobileStr = "13600136666,13800138888"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String content = "短信发送测试内容 via  IM JAVA API "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private long smId = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private int smType = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String url = "wap.sohu.com"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String host = "172.16.1.35"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String dbName = "mas"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String apiId = "jkzl"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String name = "jkzl"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String pwd = "jkzl"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private APIClient handler = new APIClient(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					BufferedReader in = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public ZhongShanSMSUtils(String[] args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						super(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						parseCmd(args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						in = new BufferedReader(new InputStreamReader(System.in),512); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void init() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int connectRe = handler.init(host, name, pwd, apiId,dbName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(connectRe == APIClient.IMAPI_SUCC) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("初始化成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(connectRe == APIClient.IMAPI_CONN_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("连接失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(connectRe == APIClient.IMAPI_API_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("apiID不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(connectRe != APIClient.IMAPI_SUCC) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							usage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							System.exit(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void release() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						handler.release(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Thread.currentThread().interrupt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void testSend() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						SendTask task = new SendTask(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						task.start(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void sendSM() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmpMobile = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmpContent = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmpTypeStr = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmpSrcID = null ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int tmpType = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmpUrl = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("请输入srcID,按回车结束:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						tmpSrcID = readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if( tmpSrcID == null || tmpSrcID.trim().length() == 0 || getInt(tmpSrcID.trim()) == Integer.MIN_VALUE ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpSrcID = "" + smId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("请输入手机号码,多个号码用英文逗号隔开,按回车结束:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						tmpMobile = readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if( tmpMobile == null || tmpMobile.trim().length() == 0 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpMobile = mobileStr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("请输入短信内容,按回车结束:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						tmpContent = readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if( tmpContent == null || tmpContent.trim().length() == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpContent = content; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("请输入短信类型是否为WAP PUSH消息,按回车结束:Y/N[N]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						tmpTypeStr = readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if( tmpTypeStr != null && tmpTypeStr.trim().equalsIgnoreCase("Y")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpType = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("请输入短信类型是否为WAP PUSH消息,按回车结束:Y/N[N]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpUrl = readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if( tmpUrl == null || tmpUrl.trim().length() == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								tmpUrl = url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							tmpType = smType;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Vector mobileList = new Vector(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						StringTokenizer st = new StringTokenizer(tmpMobile, ","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						while(st.hasMoreElements()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String tmp = (String)st.nextElement(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if( tmp.indexOf("-") != -1 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								long min = Long.parseLong(tmp.substring(0, tmp.indexOf("-"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								long max = Long.parseLong(tmp.substring(tmp.indexOf("-") + 1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								long i  = min; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								while(i <= max) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									mobileList.addElement(Long.toString(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									i ++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								mobileList.addElement(tmp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int len = mobileList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String[] mobiles = new String[len]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						for(int i = 0 ; i < len ; i++) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							mobiles[i] = (String)mobileList. elementAt(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						//System.arraycopy(mobileList, 0, mobiles, 0, mobileList.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						//mobiles = (String[]) mobileList.toArray(mobiles); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int result = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(tmpType == 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if(url == null || url.length() == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								info("请输入Wap Push的链接地址!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							result = handler.sendSM(mobiles, tmpContent, smId, Long.parseLong(tmpSrcID), url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						}else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							result = handler.sendSM(mobiles, tmpContent, smId , Long.parseLong(tmpSrcID)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(result == APIClient.IMAPI_SUCC) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("发送成功\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(result == APIClient.IMAPI_INIT_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("未初始化"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(result == APIClient.IMAPI_CONN_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("数据库连接失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(result == APIClient.IMAPI_DATA_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("参数错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(result == APIClient.IMAPI_DATA_TOOLONG) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("消息内容太长"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(result == APIClient.IMAPI_INS_ERR) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("数据库插入错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("出现其他错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void recvSM() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						MOItem[] mos = handler.receiveSM(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int len = 0, i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						StringBuffer sb = new StringBuffer(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(mos == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("未初始化或接收失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(mos.length == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("没有MO短信"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							len = mos.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							while(i < len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("手机号码: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(mos[i].getMobile() + " "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("短信内容: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(mos[i].getContent()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("MO时间: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(mos[i].getMoTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info(sb.toString() ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void recvRPT() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						RPTItem[] rpts = handler.receiveRPT(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int len = 0, i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						StringBuffer sb = new StringBuffer(""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(rpts == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("未初始化或接收失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else if(rpts.length == 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("没有回执"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							len = rpts.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							while(i < len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("手机: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(rpts[i].getMobile() + " "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("回执编码: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(rpts[i].getCode() + " "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("回执描述: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(rpts[i].getDesc() + " "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("回执时间: "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(rpts[i].getRptTime() + " "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append("\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void error(Object obj , Throwable thr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						thr.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void info(Object obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						System.out.println(obj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String readLine() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String line = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							line = in.readLine(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						catch(IOException e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							error("",e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return line; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public int getInt(String str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int ret = Integer.MIN_VALUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							ret = Integer.parseInt(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						}catch(NumberFormatException e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							ret = Integer.MIN_VALUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void usage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("Usage : java ApiTestDemo [-h host] [-n name] [-p password] [-i apiCode]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("\t-h host        信息机地址"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("\t-n name        API登陆名"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("\t-p password    API登陆密码"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("\t-i apiCode     API编码"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void menu() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("\n------------------------------"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("1\t 发送短信"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("2\t 发送短信(srcID测试)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("3\t 接收短信"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("4\t 接收回执"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("5\t 查看帮助"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("6\t 退出"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("------------------------------"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						info("请输入你要进行操作的数字:"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void quit() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						release(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						System.exit(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void run() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						while(true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							menu(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							int menu = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							menu = parseMenu(readLine()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							//try{menu = in.read();}catch(Exception e){error("",e);} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if(menu < 1 || menu > 6) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							switch(menu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 1 : sendSM();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 2 : testSend();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 3 : recvSM();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 4 : recvRPT();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 5 : usage();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								case 6 : quit();break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								default:;break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public int parseMenu(String menu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int cmd = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							cmd = Integer.parseInt(menu); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						catch(Exception e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							cmd = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return cmd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public void parseCmd(String[] args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String tmp = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int index = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int len = args.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(args.length > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							info("parse argements...."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							while(index < len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								tmp = args[index++].trim(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if(tmp.equalsIgnoreCase("-h")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									host = args[index++]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									info(" host  = "+host); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else if(tmp.equalsIgnoreCase("-n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									name = args[index++]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									info(" name  = "+name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else if(tmp.equalsIgnoreCase("-p")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									pwd = args[index++]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									info(" pwd   = "+pwd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else if(tmp.equalsIgnoreCase("-i")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									apiId = args[index++]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									info(" apiId = "+apiId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									index += 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					class SendTask extends Thread 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						int loop = 10; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						long interval = 2000L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public SendTask() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public void run() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							Random random = new Random(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							long tmpSmId = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							long tmpSrcId = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							while(loop > 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									Thread.sleep(interval); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								}catch(InterruptedException e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								tmpSmId = random.nextInt(1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								tmpSrcId = random.nextInt(100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								System.out.println("TestSend:"+loop + "[smId:"+tmpSmId+";srcId:"+tmpSrcId+"]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								handler.sendSM(mobileStr.split(","), content,  tmpSmId, tmpSrcId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								loop--; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							System.out.println("Test completed."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static void main(String[] args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ZhongShanSMSUtils demo = new ZhongShanSMSUtils(args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						demo.run(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |