📄 senddatathread.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 + -