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

📄 senddatathread.java

📁 本人为友邦公司做的模拟网关源代码
💻 JAVA
字号:
package smgpgw;
import java.io.*;
import java.util.*;
import java.lang.*;

/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2002
 * Company:      TalkWeb Ltd.
 * @author       Li  yongjun
 * @version      2.0
 */

public class SendDataThread extends Thread {

  private int m_nSendMode;
  private static String MobileHead="";
  private boolean m_bReturn;

  public SendDataThread(int nSendMode) {
    m_nSendMode = nSendMode;
  }

  public void stopThread() {
    m_bReturn = true;
  }

  void fillMsgHead(SmscShortMsg sm) {
    sm.headCmdStatus = 0;
    sm.headCmdID  = Constants.nMsgType;
//		sm.headSeqcNo = Constants.getSequence();
  }

  public synchronized static boolean SendReport(String SrcMobile,String Msgid)
  {

    SmscShortMsg sm=new SmscShortMsg();

    sm.headCmdStatus = 0;

    sm.headCmdID  = Constants.nMsgType;

    sm.msgServiceType      = Constants.smscMsg.msgServiceType;
    //sm.msgSourceAddress    = Constants.smscMsg.msgSourceAddress;
    sm.msgSourceAddress=SrcMobile;

    MobileHead=Constants.smscMsg.msgSourceAddress;;

    sm.msgSourceAddressNpi = Constants.smscMsg.msgSourceAddressNpi;
    sm.msgSourceAddressTon = Constants.smscMsg.msgSourceAddressTon;
    sm.msgDestAddress      = Constants.smscMsg.msgDestAddress;
    sm.msgDestAddressNpi   = Constants.smscMsg.msgDestAddressNpi;
    sm.msgDestAddressTon   = Constants.smscMsg.msgDestAddressTon;
    sm.msgEsmClass     = Constants.smscMsg.msgEsmClass;
    sm.msgProtocolID   = Constants.smscMsg.msgProtocolID;
    sm.msgPriorityFlag = Constants.smscMsg.msgPriorityFlag;
    sm.msgScheduleDeliveryTime  = Constants.smscMsg.msgScheduleDeliveryTime;
    sm.msgValidityPeroid        = Constants.smscMsg.msgValidityPeroid;
    sm.msgRegisterdDeliveryFlag = 1;//Constants.smscMsg.msgRegisterdDeliveryFlag;
    sm.msgReplaceIfPresentFlag  = Constants.smscMsg.msgReplaceIfPresentFlag;
    sm.msgDataCoding     = 0;//Constants.smscMsg.msgDataCoding;
    sm.msgSmDefaultMsgID = Constants.smscMsg.msgSmDefaultMsgID;
   // sm.msgSmLength       = (byte)Constants.smscMsg.msgShortMsgText.length();
  //  System.out.print("\nMsgid="+Msgid);
    sm.ackMsgID = Msgid;


    if(sm.headSeqcNo%2==0)
      sm.msgShortMsgText   = "DELIVRD"+"0304201400"+"0304201500"+"0000000000"+sm.msgSourceAddress+"0000";//Constants.smscMsg.msgShortMsgText;
    else
      sm.msgShortMsgText   = "EXPIRED"+"0304201400"+"0304201500"+"0000000000"+sm.msgSourceAddress+"0000";//Constants.smscMsg.msgShortMsgText;

    sm.msgSmLength=(byte)sm.msgShortMsgText.length();

/*
    System.err.print("\n headCmdID :"+sm.headCmdID+"\n"+
                     " msgServiceType:"+sm.msgServiceType+"\n"+
                     " sm.msgSourceAddress:"+sm.msgSourceAddress+"\n"+
                     " MobileHead:"+MobileHead+"\n"+
                     " msgSourceAddressNpi:"+sm.msgSourceAddressNpi +"\n"+
                     " msgSourceAddressTon:"+sm.msgSourceAddressTon +"\n"+
                     " msgDestAddress:"+sm.msgDestAddress+"\n"+
                     " msgDestAddressNpi:"+sm.msgDestAddressNpi+"\n"+
                     " msgDestAddressTon:"+sm.msgDestAddressTon +"\n"+
                     " msgEsmClass:"+sm.msgEsmClass+"\n"+
                     " msgProtocolID:"+sm.msgProtocolID+"\n"+
                     " sm.msgPriorityFlag:"+sm.msgPriorityFlag+"\n"+
                     " msgScheduleDeliveryTime:"+sm.msgScheduleDeliveryTime+"\n"+
                     " msgValidityPeroid:"+sm.msgValidityPeroid+"\n"+
                     " msgRegisterdDeliveryFlag:"+sm.msgRegisterdDeliveryFlag +"\n"+
                     " msgReplaceIfPresentFlag:"+sm.msgReplaceIfPresentFlag +"\n"+
                     " msgDataCoding:"+sm.msgDataCoding+"\n"+
                     " msgSmDefaultMsgID:"+sm.msgSmDefaultMsgID+"\n"+
                     " msgSmLength:"+sm.msgSmLength+"\n"+
                     " msgShortMsgText:"+sm.msgShortMsgText+"\n");
*/


    SMSCConnectionManager.instance().send(sm);

    return true;
  }

  void fillMsgBody(SmscShortMsg sm) {
    sm.msgServiceType      = Constants.smscMsg.msgServiceType;
    sm.msgSourceAddress    = Constants.smscMsg.msgSourceAddress;
    MobileHead=Constants.smscMsg.msgSourceAddress;;
    sm.msgSourceAddressNpi = Constants.smscMsg.msgSourceAddressNpi;
    sm.msgSourceAddressTon = Constants.smscMsg.msgSourceAddressTon;
    sm.msgDestAddress      = Constants.smscMsg.msgDestAddress;
    sm.msgDestAddressNpi   = Constants.smscMsg.msgDestAddressNpi;
    sm.msgDestAddressTon   = Constants.smscMsg.msgDestAddressTon;
    sm.msgEsmClass     = Constants.smscMsg.msgEsmClass;
    sm.msgProtocolID   = Constants.smscMsg.msgProtocolID;
    sm.msgPriorityFlag = Constants.smscMsg.msgPriorityFlag;
    sm.msgScheduleDeliveryTime  = Constants.smscMsg.msgScheduleDeliveryTime;
    sm.msgValidityPeroid        = Constants.smscMsg.msgValidityPeroid;
    sm.msgRegisterdDeliveryFlag = Constants.smscMsg.msgRegisterdDeliveryFlag;
    sm.msgReplaceIfPresentFlag  = Constants.smscMsg.msgReplaceIfPresentFlag;
    sm.msgDataCoding     = Constants.smscMsg.msgDataCoding;
    sm.msgSmDefaultMsgID = Constants.smscMsg.msgSmDefaultMsgID;
    sm.msgSmLength       = (byte)Constants.smscMsg.msgShortMsgText.length();
    sm.msgShortMsgText   = Constants.smscMsg.msgShortMsgText;
    sm.msgRecvTime = method.dateview();
  }

  public void run() {
    boolean bResp;
    int nCount = 0;
    int nTotal = 0;
    Timer timerSM = null;
    SmscShortMsg sm = null;
    SetReturn setReturn = null;
    sm = new SmscShortMsg();

    fillMsgBody(sm);

    String Sm_text=sm.msgShortMsgText;

    if(Constants.strDestAddr == null || Constants.strDestAddr.length() <= 0) {
      SMSCFrame.SendArea.append("Dest address is null, send failed .\n");
      return ;
    }
    Constants.SEND_FLAG = false;
    int totalSend = 0;
    if(m_nSendMode == Constants.NUMBER) {

      SMSCFrame.SendArea.append("Start time : " + System.currentTimeMillis()  + " .\n");
      SMSCFrame.SendArea.append("Start time : " + Constants.formatDateTime()  + " .\n");

      //Constants.nMsgNumber=100*Constants.nMsgNumber;

      while(totalSend < Constants.nMsgNumber && m_bReturn == false) {


        //sm.msgSourceAddress=MobileHead+Integer.toString(Constants.SrcMobile++);

        //System.out.println("sm.msgSourceAddress= "+sm.msgSourceAddress);

       // sm.msgShortMsgText=Sm_text;
        //sm.msgSmLength       = (byte)Constants.smscMsg.msgShortMsgText.length();
        bResp = sendMsg(sm);

        totalSend++;

        System.out.println("发送条数="+totalSend);

        if(totalSend == 1)
          Constants.nStartNumber = sm.headSeqcNo;


        if(Constants.nTimeInterval > 0)
          Constants.threadSleep(Constants.nTimeInterval);


        //修改上次投票的结果Begin

/*
                                 sm.msgShortMsgText="02";
                                 sm.msgSmLength       = (byte)Constants.smscMsg.msgShortMsgText.length();
                                 bResp = sendMsg(sm);
                                 if(Constants.nTimeInterval > 0)
                                     Constants.threadSleep(Constants.nTimeInterval);

        //修改上次投票的结果 end
*/
      }

      Constants.nEndNumber = sm.headSeqcNo;
      SMSCFrame.SendArea.append("End time : " + Constants.formatDateTime()  + " .\n");
      SMSCFrame.SendArea.append("Send mode : " + m_nSendMode +
                                " Message type : " + Constants.nMsgType +
                                " Message number : " + totalSend + " .\n");
    } else if(m_nSendMode == Constants.TIME) {
      m_bReturn = false;
      timerSM = new Timer();
      setReturn = new SetReturn(this);
      timerSM.scheduleAtFixedRate(setReturn, Constants.nMsgTime*1000, 1000);
      SMSCFrame.SendArea.append("Time : " + Constants.nMsgTime + "   Interval : " +
                                Constants.nTimeInterval + " .\n");
      SMSCFrame.SendArea.append(Constants.formatDateTime() + "\n");
      while(m_bReturn==false) {
        //sm = new SmscShortMsg();
        bResp = sendMsg(sm);
        if(bResp)
          nTotal++;
        if(Constants.nTimeInterval > 0)
          Constants.threadSleep(Constants.nTimeInterval);
      }
      Constants.nEndNumber = sm.headSeqcNo;
      SMSCFrame.SendArea.append(Constants.formatDateTime() + "\n");
      SMSCFrame.SendArea.append("Send mode : " + m_nSendMode +
                                " Message type : " + Constants.nMsgType +
                                " Message number : " + nTotal + " .\n");
    } else
      SMSCFrame.RecvArea.append("Send thread : UNKNOWN send mode .\n");
    Constants.SEND_FLAG = true;
    return ;
  }

  boolean sendMsg(SmscShortMsg sm) {
    boolean bResp;
    fillMsgHead(sm);
    //fillMsgBody(sm);
    return SMSCConnectionManager.instance().send(sm);
  }
}

class SetReturn extends TimerTask {
  SendDataThread send = null;

  SetReturn(SendDataThread sendThread) {
    send = sendThread;
  }

  public  void run() {
    send.stopThread();
  }
}

⌨️ 快捷键说明

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