一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java實(shí)現(xiàn)基于SGIP協(xié)議開發(fā)聯(lián)通短信的方法

java實(shí)現(xiàn)基于SGIP協(xié)議開發(fā)聯(lián)通短信的方法

2019-12-26 13:32tianshanfeike JAVA教程

這篇文章主要介紹了java實(shí)現(xiàn)基于SGIP協(xié)議開發(fā)聯(lián)通短信的方法,涉及java短信發(fā)送的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了java實(shí)現(xiàn)基于SGIP協(xié)議開發(fā)聯(lián)通短信的方法。分享給大家供大家參考。具體如下:

近段時(shí)間,由于公司的業(yè)務(wù)需要,開發(fā)出了聯(lián)通短信.此文章的編寫也是根據(jù)網(wǎng)上的一些示例來完成的.閑話少說,下面來看代碼:(運(yùn)行此程序的時(shí)候需要導(dǎo)入華為的開發(fā)包,此包可以到網(wǎng)上下載)

下行:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
public class Mt {
 private static String SPNumber = "**********";
 //接入號(hào)碼
 private static String ChargeNumber = "000000000000000000000";
 // 計(jì)費(fèi)號(hào)碼,白名單
 private static String ServiceType = "";
 //服務(wù)類型
 private static String host = "***.***.***.***";
 // 主機(jī)名,網(wǎng)關(guān)IP
 private static int port = ****;
 // 端口號(hào)
 private static String CorpId = "*****";
 // 企業(yè)代碼
 private static String login_Name = "**";
 // 登陸名
 private static String login_PassWord = "***";
 // 登陸密碼
  public static void main(String[] args) throws UnsupportedEncodingException {
  int srcnode = new BigInteger("*******").intValue();
  //源節(jié)點(diǎn)編號(hào)(nodeid),這一步非常重要,華為包中,該字段類型為int,而接入?yún)f(xié)議中要求在企業(yè)代碼前加上30000,這樣就超過了int的取值范圍,所以需要用BigInteger轉(zhuǎn)一下就可以了
   Args argstr = new Args();//設(shè)定連接參數(shù)
   argstr.set("host", host);
   argstr.set("port", port);
   argstr.set("transaction-timeout", 10);
   // 操作超時(shí)時(shí)間(單位:秒)
   argstr.set("read-timeout", 15);
   // 物理連接讀操作超時(shí)時(shí)間(單位:秒)
   argstr.set("source-addr", srcnode);
   // SP…ID(最大為六位字符)
   argstr.set("login-name", login_Name);
   argstr.set("login-pass", login_PassWord);
   argstr.set("debug", "false");
   // 連接登陸
   SGIPSMProxy sgipsmp = new SGIPSMProxy(argstr);
   // 這里 連接到短信息網(wǎng)關(guān)
   try {
    //connect表示向SMG登陸,登錄名與密碼分別是SMG向SP分配的用戶名與密碼,調(diào)用這個(gè)接口方法,向SMG發(fā)送Bind命令消息。
    //如果發(fā)送消息超時(shí)或通信異常則拋出異常,需要調(diào)用者捕獲處理。
    boolean reslut = sgipsmp.connect(login_Name, login_PassWord);
    // 登陸得到true和false
    if (reslut) {
     System.out.println("連接成功...........");
    } else {
     System.out.println("連接失敗(用戶名或密碼錯(cuò)誤)...........");
     return;
    }
   } catch (Exception ex) {
    System.out.println("網(wǎng)絡(luò)異常...........");
    ex.printStackTrace();
    return;
   }
   String[] UserNumber = { "8618686619970","8618686619977"};
   //接收短信的手機(jī)號(hào)碼,前邊要加上86
   String content = "聯(lián)通短信發(fā)送成功";
   byte[] MessageContent = content.getBytes("GB2312");
    System.out.println("短信內(nèi)容: "+content);
   try {
    // 下發(fā)短息
    SGIPSubmitMessage sgipsubmit = new SGIPSubmitMessage(
      SPNumber, // SP的接入號(hào)碼
      ChargeNumber, // 付費(fèi)號(hào)碼 string
      UserNumber, // 接收該短消息的手機(jī)號(hào),最多100個(gè)號(hào)碼 string[]
      CorpId, // 企業(yè)代碼,取值范圍為0~99999 string
      ServiceType, // 業(yè)務(wù)代碼,由SP定義 stirng
      03, // 計(jì)費(fèi)類型 int
      "0", // 該條短消息的收費(fèi)值 stirng
      "0", // 贈(zèng)送用戶的話費(fèi) string
      0, // 代收費(fèi)標(biāo)志0:應(yīng)收1:實(shí)收 int
      0, // 引起MT消息的原因 int
      06, // 優(yōu)先級(jí)0~9從低 到高,默認(rèn)為0 int
      null, // 短消息壽命的終止時(shí)間 date
      null, // 短消息定時(shí)發(fā)送的時(shí)間 date
      1, // 狀態(tài)報(bào)告標(biāo)記 int
      0, // GSM協(xié)議類型 int
      0, // GSM協(xié)議類型 int
      15, // 短消息的編碼格式 int
      0, // 信息類型 int
      MessageContent.length, // 短消息內(nèi)容長(zhǎng)度 int
      MessageContent, // 短消息的內(nèi)容 btye[]
      "0" // 保留,擴(kuò)展用 string
    );
    // 收到的響應(yīng)消息轉(zhuǎn)換成rep
    int status = ProcessSubmitRep(sgipsmp.send(sgipsubmit));
    System.out.println(status);
    if (status == 0) {
     System.out.println("消息發(fā)送成功..........");
    } else {
     System.out.println("消息發(fā)送失敗..........");
    }
   } catch (Exception ex) {
    ex.printStackTrace();  
   }
  }
  private static int ProcessSubmitRep(SGIPMessage msg) {
   // 收到的響應(yīng)消息轉(zhuǎn)換成repMsg
   SGIPSubmitRepMessage repMsg = (SGIPSubmitRepMessage) msg;
   System.out.println(repMsg.getSrcNodeId());
   System.out.println("status:::::::" + repMsg.getResult());
   if (repMsg != null && repMsg.getResult() == 0) {
    System.out.println("發(fā)送成功:::");
   }
   return repMsg.getResult();
  }
}

上行:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
public class Mo extends SGIPSMProxy {
 //SMG服務(wù)器信息
 private static String serHost = "***.***.***.***";
 private static int serviceport = ****;
 //本機(jī)信息
 private static String localhost = "***.***.***.***";
 private static int localport = ****;
 public Mo(Args args) {
  super(args);
  System.out.println("進(jìn)入啟動(dòng)監(jiān)聽........");
  startService(localhost, localport);
  //我想知道這里傳遞的host和port是本地的還是那的
 }
 public static void main(String[] args)
 {
  Args argstr = new Args();
  argstr.set("serHost", serHost);
  argstr.set("serviceport", serviceport);
  argstr.set("localhost", localhost);
  argstr.set("localport", localport);
  argstr.set("transaction-timeout", 10);
  // 操作超時(shí)時(shí)間(單位:秒)
  argstr.set("read-timeout", 15);
  // 物理連接讀操作超時(shí)時(shí)間(單位:秒)
  //這里的安全認(rèn)證問題如何解決?
  Mo mymo=new Mo(argstr); 
 }
 public SGIPMessage onDeliver(SGIPDeliverMessage msg) {
  ProcessRecvDeliverMsg(msg);
  System.out.println("正在等待接收.......");
  return super.onDeliver(msg);
 }
 public void ProcessRecvDeliverMsg(SGIPMessage msg) {
  if (msg instanceof SGIPSubmitRepMessage) {
  //是否是類的實(shí)例
   System.out.println("返回下發(fā)短信的相應(yīng)消息");
  }
  if (msg instanceof SGIPDeliverMessage) {
   // 收到用戶發(fā)送的短信(上行)
   SGIPDeliverMessage deliverMsg = (SGIPDeliverMessage) msg;
   String userNumber = deliverMsg.getUserNumber();
   // 手機(jī)號(hào)碼
   String msgContent = deliverMsg.toString();
   // 短信內(nèi)容
   // byte[] msgId = deliverMsg.getMsgContent();
   System.out.println("userNumber::::::" + deliverMsg.getUserNumber());
   System.out.println("msgcontent:::::::" + deliverMsg.toString());
   System.out.println("spNumber::::::::" + deliverMsg.getSPNumber());
   //log.info("收到消息:" + deliverMsg);
   System.out.println("收到消息 :"+deliverMsg);
   int commandId = deliverMsg.getCommandId();
   // 響應(yīng)類型
   System.out.println("commandId:::::::::" + commandId);
   if (commandId == 0) { //上傳短信(接收)
    System.out.println("dstaddr::::::" + deliverMsg.getSPNumber());
    try {
    } catch (Exception e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
 }
}

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 动漫美女被吸乳 | 欧美男人的天堂 | 亚洲福利视频一区 | 四虎在线播放 | 亚洲视频在线免费看 | 18捆绑调教在线高清 | 男人v天堂| 日韩欧美成末人一区二区三区 | 精品一区二区三区高清免费不卡 | 麻豆亚洲一区 | 91普通话国产对白在线 | 免费岛国片 | 俄罗斯美女破苞 | 国产一区精品视频 | 女人用粗大自熨喷水在线视频 | 羞羞视频免费观看网站 | 亚洲嫩模吧粉嫩粉嫩冒白浆 | 久久久91精品国产一区二区 | 成人免费国产欧美日韩你懂的 | 亚洲国产天堂久久精品网 | 女学生被老师调教在教室 | 美女的让男人桶爽30分钟的 | 欧美添下面视频免费观看 | 国产精品免费久久久久影院小说 | 丁香久久婷婷 | 精品综合久久久久久8888 | 亚洲成人77777| 日本高清无吗 | 视频在线观看入口一二三2021 | 婷婷综合七月激情啪啪 | 亚洲欧美日本在线观看 | 99久女女精品视频在线观看 | 2022超帅男同gayxxx | 小柔的性放荡羞辱日记动漫 | 国产精品自拍一区 | 欧美又硬又粗又长又大 | 国产真实伦对白在线播放 | 日韩精品免费一区二区三区 | 精品一区二区三区色花堂 | 91精品乱码一区二区三区 | 亚洲欧美日韩特级毛片 |