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

📄 recv.java

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

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

public class recv {

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

	public recv() {
		ServerSocket serversocket = null;
		Socket so = null;
		OutputStream output = null;
		InputStream input = null;
		SGIP_Command command = null;

		try {
			serversocket = new ServerSocket(8801);
			so = serversocket.accept();
			input = so.getInputStream();
			output = so.getOutputStream();
			command = new SGIP_Command();
			SGIP_Command tmpCMD = null;
			
			Deliver deliver = null;
			DeliverResp deliverresp = null;

			Report report = null;
			ReportResp reportresp = null;

			Userrpt userrpt = null;
			UserrptResp userrptresp = null;

			Bind active = null;
			Unbind term = null;
			
			BindResp resp = null;
			UnbindResp Unresp = null;
			
			Submit submit=null;
			SubmitResp submitResp=null;
			
			
			boolean loop = true;
			while (loop) {
				tmpCMD = command.read(input);// 接收sgip消息
				switch (tmpCMD.getCommandID()) {
				case SGIP_Command.ID_SGIP_BIND: 
				{
					System.out.println("+++++++++++++++++++++++ Bind +++++++++++++++++++++++++");
					active = (Bind) tmpCMD;// 强制转换
					active.readbody();// 解包
					System.out.println("Bind_TotalLength---->"+tmpCMD.getTotalLength());
					System.out.println("Bind_CommandID---->"+tmpCMD.getCommandID());
					System.out.println("Bind_Seqno_1---->"+tmpCMD.getSeqno_1());
					System.out.println("Bind_Seqno_2---->"+tmpCMD.getSeqno_2());
					System.out.println("Bind_Seqno_3---->"+tmpCMD.getSeqno_3());
					System.out.println("Bind_LoginType---->"+active.GetLoginType());
					System.out.println("Bind_LoginName---->"+active.GetLoginName());
					System.out.println("Bind_LoginPassword---->"+active.GetLoginPassword());

					resp = new BindResp(tmpCMD.getMsgHead());
					resp.SetResult(0);
					resp.write(output);
					break;
				}
				case SGIP_Command.ID_SGIP_SUBMIT: {
					System.out.println("+++++++++++++++++++++++++ Submit +++++++++++++++++++++++");
					submit=(Submit)tmpCMD;
//					submit.read(input);
//					submit.print();
					System.out.println("Submit_TotalLength---->"+tmpCMD.getTotalLength());
					System.out.println("Submit_CommandID---->"+tmpCMD.getCommandID());
					System.out.println("Submit_Seqno_1---->"+tmpCMD.getSeqno_1());
					System.out.println("Submit_Seqno_2---->"+tmpCMD.getSeqno_2());
					System.out.println("Submit_Seqno_3---->"+tmpCMD.getSeqno_3());
					System.out.println("Submit_CommandID---->"+submit.getCommandID());
					System.out.println("Submit_SPNumber---->"+submit.getSPNumber());
					System.out.println("Submit_ChargeNumber---->"+submit.getChargeNumber());
					System.out.println("Submit_UserCount---->"+submit.getUserCount());
					System.out.println("Submit_CorpId---->"+submit.getCorpId());
//					String[] str=submit.getUserNumber();
//					for(int i=0;i<str.length;i++){
//						System.out.println("用户手机号码---->"+str[i]);
//					}
					System.out.println("用户手机号码---->"+submit.getUserNumber());
					System.out.println("Submit_ServiceType---->"+submit.getServiceType());
					System.out.println("Submit_FeeType---->"+submit.getFeeType());
					System.out.println("Submit_FeeValue---->"+submit.getFeeValue());
					System.out.println("Submit_GivenValue---->"+submit.getGivenValue());
					System.out.println("Submit_AgentFlag---->"+submit.getAgentFlag());
					System.out.println("Submit_MOrelatetoMTFlag---->"+submit.getMOrelatetoMTFlag());
					System.out.println("Submit_Priority---->"+submit.getPriority());
					System.out.println("Submit_ExpireTime---->"+submit.getExpireTime());
				    System.out.println("Submit_ScheduleTime---->"+submit.getScheduleTime());
					System.out.println("Submit_ReportFlag---->"+submit.getReportFlag());
					System.out.println("Submit_TP_pid---->"+submit.getTP_pid());
					System.out.println("Submit_TP_udhi---->"+submit.getTP_udhi());
					System.out.println("Submit_MessageCoding---->"+submit.getMessageCoding());
					System.out.println("Submit_MessageType---->"+submit.getMessageType());
					System.out.println("Submit_MessageLength---->"+submit.getMessageLength());
					System.out.println("Submit_MessageContent---->"+submit.getMessageContent());
					System.out.println("Submit_ScheduleTime---->"+submit.getScheduleTime());
					submitResp=new SubmitResp(tmpCMD.getMsgHead());
					submitResp.write(output);
					break;
				}
				case SGIP_Command.ID_SGIP_UNBIND: {
					System.out.println("+++++++++++++++++++++++++ Unbind +++++++++++++++++++++++");
					term = (Unbind) tmpCMD;// 强制转换
					// int result=term.readbody();
					System.out.println("消息长度---->"+tmpCMD.getTotalLength());
					System.out.println("消息的代码---->"+tmpCMD.getCommandID());
					System.out.println("消息的第一编码---->"+tmpCMD.getSeqno_1());
					System.out.println("消息的第二编码---->"+tmpCMD.getSeqno_2());
					System.out.println("消息的第二编码---->"+tmpCMD.getSeqno_3());
					System.out.println("消息的标记---->"+term.GetFlag());
					Unresp = new UnbindResp(tmpCMD.getMsgHead());// node id
																	// 3+AAAA+CP_id,
																	// AAAA是长途区号
					Unresp.write(output);
					loop = false;
					break;
				}
				case SGIP_Command.ID_SGIP_DELIVER: {
					System.out.println("++++++++++++++++++++++++++ Deliver ++++++++++++++++++++++");
					deliver = (Deliver) tmpCMD;// 强制转换
					deliver.print();
//					deliver.readbody();// 解包
					System.out.println("消息的长度---->"+deliver.getTotalLength());
					System.out.println("命令代码号---->"+deliver.getCommandID());
					System.out.println("消息的第一序号---->"+deliver.getSeqno_1());
					System.out.println("消息的第二序号---->"+deliver.getSeqno_2());
					System.out.println("消息的第三序号---->"+deliver.getSeqno_3());
					System.out.println("接收该短信的手机号---->"+deliver.getUserNumber());
					System.out.println("sp端接入号---->"+deliver.getSPNumber());
					System.out.println("GSM协议类型---->"+deliver.getTP_pid());
					System.out.println("GSM协议类型---->"+deliver.getTP_udhi());
					System.out.println("消息的编码---->"+deliver.getMessageCoding());
					System.out.println("消息的长度---->"+deliver.getMessageLength());
					System.out.println("消息的内容---->"+deliver.getMessageContent());
					deliverresp = new DeliverResp(tmpCMD.getMsgHead());// result
					deliverresp.SetResult(0);
					deliverresp.write(output);
					break;
				}
				case SGIP_Command.ID_SGIP_REPORT: {
					System.out.println("+++++++++++++++++++++++ Report +++++++++++++++++++++++++");
					report = (Report) tmpCMD;// 强制转换
					report.readbody();// 解包

					System.out.println(tmpCMD.getTotalLength());
					System.out.println(tmpCMD.getCommandID());
					System.out.println(tmpCMD.getSeqno_1());
					System.out.println(tmpCMD.getSeqno_2());
					System.out.println(tmpCMD.getSeqno_3());
					System.out.println(report.getSeq_1());
					System.out.println(report.getSeq_2());
					System.out.println(report.getSeq_3());
					System.out.println(report.getReportType());
					System.out.println(report.getUserNumber());
					System.out.println(report.getState());
					System.out.println(report.getErrorCode());
					reportresp = new ReportResp(tmpCMD.getMsgHead());// result
					reportresp.SetResult(0);
					reportresp.write(output);
					break;
				}
				case SGIP_Command.ID_SGIP_USERRPT: {
					System.out.println("++++++++++++++++++++++++++ Userrpy ++++++++++++++++++++++");
					userrpt = (Userrpt) tmpCMD;// 强制转换
					userrpt.readbody(); // 解包
					System.out.println(tmpCMD.getTotalLength());
					System.out.println(tmpCMD.getCommandID());
					System.out.println(tmpCMD.getSeqno_1());
					System.out.println(tmpCMD.getSeqno_2());
					System.out.println(tmpCMD.getSeqno_3());
					System.out.println(userrpt.getSPNumber());
					System.out.println(userrpt.getUserNumber());
					System.out.println(userrpt.getUserCondition());
					userrptresp = new UserrptResp(tmpCMD.getMsgHead());
					userrptresp.SetResult(12);
					userrptresp.write(output);
					break;
				}
				}

			}
			so.close();

		} catch (Exception e) {
			System.out.println(e.toString());
		} finally {
			try {
				System.in.read();
				// it just for debug
			} catch (Exception s) {
				System.out.println(s.toString());
			}
		}

	}

}

⌨️ 快捷键说明

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