⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send.java

📁 联通的SGIP协议Java实现
💻 JAVA
字号:
package test;

import spApi.*;

import java.net.*;
import java.io.*;

public class send {

	public static void main(String[] args) {
		new send();
	}

	public send() {
		Socket so = null;
		OutputStream out = null;
		InputStream input = null;
		Bind command = null;
		SGIP_Command sgip = null;
		SGIP_Command tmp = null;
		int i = 0;
		try {
			sgip = new SGIP_Command();
			command = new Bind(399000,// nodeID 3+CP_ID
					1, // login type
					"lixin",// login name
					"lixin");// login password
			int err;
			byte[] byte_content = new byte[140];
			Deliver deliver = null;
			DeliverResp deliverResp = null;
			Submit submit = null;
			SubmitResp submitresp = null;
			Unbind term = null;
			BindResp resp = null;
			UnbindResp Unresp = null;
			so = new Socket("127.0.0.1", 8801);
			out = new DataOutputStream(so.getOutputStream());
			input = new DataInputStream(so.getInputStream());
			// command=new Bind(399000);
			// command.SetLoginType(1);
			// command.SetLoginName("zhao");
			// command.SetLoginPassword("zhao");

			err = command.write(out);// 发送bind
			if (err != 0) {
				System.out.println("err" + err);
			}
			tmp = sgip.read(input);// 接收sgip消息
			if (sgip.getCommandID() == SGIP_Command.ID_SGIP_BIND_RESP) {
				System.out
						.println("++++++++++++++++++++++ BindResp +++++++++++++++++++++");
				resp = (BindResp) tmp;// 强制转换为bindresp
				resp.readbody();// 对消息进行解包
				System.out.println("BindRespSeqno_1---->" + tmp.getSeqno_1());
				System.out.println("BindRespSeqno_2---->" + tmp.getSeqno_2());
				System.out.println("BindRespSeqno_3---->" + tmp.getSeqno_3());
				System.out.println("BindRespResult ---->" + resp.GetResult());
			}
			for (i = 0; i < 140; i++) {
				byte_content[i] = 51;
				i++;
				byte_content[i] = 51;
				i++;
				byte_content[i] = 52;
				i++;
				byte_content[i] = 53;
				i++;
				byte_content[i] = 54;
				i++;
				byte_content[i] = 55;
				i++;
				byte_content[i] = 56;
				i++;
				byte_content[i] = 57;
				i++;
				byte_content[i] = 58;
				i++;
				byte_content[i] = 59;
			}
			/**
			submit = new Submit(399000);
			submit.setSPNumber("900000");
			submit.setChargeNumber("8613000061234");
			submit.setUserCount(2);
			submit.setUserNumber("8613088888888,8613099999999");
			submit.setCorpId("99000");
			submit.setServiceType("短信息");
			submit.setFeeType(0);
			submit.setFeeValue("500");
			submit.setGivenValue("500");
			submit.setAgentFlag(1);
			submit.setMOrelatetoMTFlag(1);
			submit.setPriority(9);
			submit.setExpireTime("12:00");
			submit.setScheduleTime("1:00");
			submit.setReportFlag(1);
			submit.setTP_pid(1);
			submit.setTP_udhi(1);
			submit.setMessageCoding(15);
			submit.setMessageType(0);
			submit.setMessageLength(12);
			submit.setMessageContent("123456789");
			*/
			submit = new Submit(399000,// node id同上long
					"900000",// cp_phone string1
					"8613000061234",// 付费号码 string2
					2,// 接收短消息的手机数int1
					"8613088888888,8613099999999",// 手机号码前面加86 string 3
					"99000",// cp_id string4
					"短信息",// 业务代码 string5
					0,// 计费类型 int 2
					"500",// 短消息收费值 string 6
					"500",// 赠送话费 string 7
					1,// 代收标志 int 3
					1,// 引起MT的原因 int 4
					9,// 优先级 int 5
					"12:00",// 短消息终止时间 string 8
					"1:00",// 011125120000032+短消息定时发送时间 string 9
					1,// 状态报告标志 int 6
					1,// GSM协议类型 int 7
					1,// GSM协议类型 int 8
					15,// 短消息编码格式 int 9
					0,// 信息类型 int 10
					12,// 短消息长度 int 11 
					"123456789012");// 短消息内容 string 10
					
			submit.write(out);// 发送submit
			tmp = sgip.read(input);
			if (tmp.getCommandID() == SGIP_Command.ID_SGIP_SUBMIT_RESP) {
				System.out
						.println("++++++++++++++++++++++ SubmitResp ++++++++++++++++++\n");
				submitresp = (SubmitResp) tmp;// 强制转换
				submitresp.readbody();// 解包
				System.out
						.println("submitResp'Seqno_1---->" + tmp.getSeqno_1());
				System.out
						.println("submitResp'Seqno_2---->" + tmp.getSeqno_2());
				System.out
						.println("submitResp'Seqno_3---->" + tmp.getSeqno_3());
				System.out.println("submitResp'Result ---->"
						+ submitresp.getResult());
			}
			DeliverData deliverdata=new DeliverData();
			String d=deliverdata.data();
//			System.out.print(d);
//			String sb=dd.data();
			deliver = new Deliver(399000,// nodeID
					"8613205558888",// 发送短消息的用户手机号
					"222",// SP的接入号码
					0,// GSM协议类型
					0,// GSM协议类型
					1,// 短消息的编码格式。
					10,// 短消息的长度
					d// 短消息的内容
			);
			deliver.write(out);
			tmp = sgip.read(input);
			if (tmp.getCommandID() == SGIP_Command.ID_SGIP_DELIVER_RESP) {
				deliverResp = (DeliverResp) tmp;
				deliver.print();
				System.out
						.println("++++++++++++++++++++++ DeliverResp ++++++++++++++++++\n");
				System.out.println("deliverResp_CommandID---->"
						+ tmp.getCommandID());
				System.out.println("消息的长度---->" + deliverResp.getTotalLength());
				System.out.println("消息的头部---->" + deliverResp.getMsgHead());
				System.out.println("消息的第一序号---->" + deliverResp.getSeqno_1());
				System.out.println("消息的第二序号---->" + deliverResp.getSeqno_2());
				System.out.println("消息的第三序号---->" + deliverResp.getSeqno_3());
			}
			term = new Unbind(399000);
			term.write(out);// 发送unbind
			tmp = sgip.read(input);
			if (sgip.getCommandID() == SGIP_Command.ID_SGIP_UNBIND_RESP) {
				System.out
						.println("+++++++++++++++++++++++++UnbidResp++++++++++++++++++++++\n");
				Unresp = (UnbindResp) tmp;
				System.out.println("UnbindResp_Seqno_1" + tmp.getSeqno_1());
				System.out.println("UnbindResp_Seqno_2" + tmp.getSeqno_2());
				System.out.println("UnbindResp_Seqno_3" + tmp.getSeqno_3());
			}
			out.close();
			so.close();
		} catch (SGIP_Exception e) {
			System.out.println(e.toString());
		} catch (Exception e) {
			System.out.println(e.toString());
		} finally {
			try {
				System.in.read();
			} catch (Exception s) {
				System.out.println(s.toString());
			}
		}

	}

}
/*
 * submit.setContent(0,"123"); submit.setBinContent(10,byte_content); submit=new
 * Submit(399000); submit.setSPNumber("9200");
 * submit.setChargeNumber("8613055555678");
 * submit.setUserNumber("8613055551230,8613055551231");
 * submit.setCorpId("99001"); submit.setServiceType("123");
 * submit.setFeeType(2); submit.setFeeValue("50000");
 * submit.setGivenValue("50001"); submit.setAgentFlag(2);
 * submit.setMOrelatetoMTFlag(3); submit.setPriority(8);
 * submit.setExpireTime("011125120000032+");
 * submit.setScheduleTime("011125120000032+"); submit.setReportFlag(0);
 * submit.setTP_pid(1); submit.setTP_udhi(64); submit.setMessageType(1);
 * submit.setBinContent(10,byte_content); submit.setContent(0,"1234");
 * 
 * 该构造函数中各个参数的意义同上
 * 
 * submit = new Submit(399000, "9000", "8613000061234", 2, "8613000061231,
 * 8613000061233", "99000", "", 0, "500", "50 0", 1, 1, 9, "", "", 1, 1, 1, 4,
 * 0, 140, byte_content);
 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -