?? senddatathread.java~1~
字號:
package smsc;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 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(); } void fillMsgBody(SmscShortMsg sm) { sm.msgServiceType = Constants.smscMsg.msgServiceType; sm.msgSourceAddress = 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; } 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); if(Constants.strDestAddr == null || Constants.strDestAddr.length() <= 0) { SMSCFrame.SendArea.append("Dest address is null, send failed .\n"); return ; } Constants.SEND_FLAG = false; if(m_nSendMode == Constants.NUMBER) { SMSCFrame.SendArea.append("Start time : " + Constants.formatDateTime() + " .\n"); while(nCount++ < Constants.nMsgNumber && m_bReturn == false) { //sm = new SmscShortMsg(); bResp = sendMsg(sm); if(nCount == 1) Constants.nStartNumber = sm.headSeqcNo; if(bResp) nTotal++; if(Constants.nTimeInterval > 0) Constants.threadSleep(Constants.nTimeInterval); } 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 : " + nTotal + " .\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); bResp = SMSCConnectionManager.instance().send(sm, Constants.strDestAddr); return bResp; }}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 + -