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

📄 threadsend.java

📁 亚信java实例 移动短信接口 cmpp3.0
💻 JAVA
字号:
package sample;/** * @File: ThreadSend.java * @Description: Thread Test for CMPP2.0, MT sent thread test * @Copyright: Copyright 2002 By AsiaInfo(c) ISMG. All right reserved * @Date: 2002-10-24 * @Version 1.0 */import aiismg.jcmppapi30.CMPPAPI;import aiismg.jcmppapi30.CMPPDeliverResp;import java.io.*;/** * @Description: a multi thread implementation class of MT send, for testing the *  function CMPPSendSingle(int, CMPPDeliverResp) of cmppapi2.0 * @Note: Now the class is not supported CMPPSendBatch() now */public class ThreadSend implements Runnable{  int ciErrorCode;  public CMPPAPI loThreadTest = new CMPPAPI() ;  SMArgument loSendArg = new SMArgument();  /**   * @Destination: parse the argument file at sending MT   * @Return: int value; if successful, the value is larger than zero,it means the   *  sending content length, else if less than or equal zero,means parsed file failed   * @Note: the argument aoSendArg should not be null   */  public static int ciParseFile ( SMArgument aoSendArg )  {    if ( aoSendArg == null ) {      System.out.println ( "Error: aoSendArg is null" ) ;      return -1 ;    }    int liMsgLen = 0 ;    String lsArgFile = null ;    if ( (lsArgFile = ThreadTest.csGetArgFile() ) == null ) {      System.out.println ( "Error: Get argument file failed" ) ;      return -1 ;    }       String lsLine;    int i;    FileInputStream loFileStream;    BufferedReader loFileRead;      try {      loFileStream = new FileInputStream ( lsArgFile ) ;      loFileRead = new BufferedReader ( new InputStreamReader ( (InputStream)loFileStream ) ) ;      for ( i=0; i<17; i++ ) {        lsLine = loFileRead.readLine() ;        if ( lsLine == null ) {          System.out.println ( "Error: read line " + i + " from file failed" ) ;          liMsgLen = -1 ;          break ;        }        switch ( i ) {          case 0: /* Need Reply */            aoSendArg.nNeedReply = Byte.parseByte ( lsLine ) ;            break ;          case 1: /* Msg Level */            aoSendArg.nMsgLevel = Byte.parseByte ( lsLine ) ;            break ;          case 2: /* Service ID */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sServiceID, 0, ((lsLine.length()>10)? 10 : lsLine.length()) ) ;            break ;          case 3: /* Msg Format */            aoSendArg.nMsgFormat = Byte.parseByte ( lsLine ) ;            break ;          case 4: /* Fee Type */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sFeeType, 0, ((lsLine.length()>2)? 2 : lsLine.length()) ) ;            break ;          case 5: /* Fee Code */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sFeeCode, 0, ((lsLine.length()>6)? 6 : lsLine.length()) ) ;            break ;          case 6: /* Valid Time */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sValidTime, 0, ((lsLine.length()>17)? 17 : lsLine.length()) ) ;            break ;          case 7: /* At Time */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sAtTime, 0, ((lsLine.length()>17)? 17 : lsLine.length()) ) ;            break ;          case 8: /* Source Terminal ID */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sSrcTermID, 0, ((lsLine.length()>21)? 21 : lsLine.length()) ) ;            break ;          case 9: /* Destination Terminal ID */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sDestTermID, 0, ((lsLine.length()>32)? 32 : lsLine.length()) ) ;            break ;          case 10:/* Fee Terminal ID */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sFeeTermID, 0, ((lsLine.length()>32)? 32 : lsLine.length()) ) ;          case 11:/* Fee Terminal type */            aoSendArg.cFeeTermType = Byte.parseByte ( lsLine );                      case 12:/* Dest Terminal type */          	aoSendArg.cDestTermType = Byte.parseByte ( lsLine ) ;          	          case 13:/* LinkID */            System.arraycopy ( lsLine.getBytes(), 0, aoSendArg.sLinkID, 0, ((lsLine.length()>20)? 20 : lsLine.length()) ) ;                case 14: /* Destination Terminal ID file */            aoSendArg.sDestTermIDFile = lsLine ;            break ;          case 15: /* Msg File */            aoSendArg.sMsgFile = lsLine ;            break ;          case 16: /* Msg ID File */            aoSendArg.sMsgIDFile = lsLine ;            break ;          default:            System.out.println ( "Error: unbelievable, illegal i value:" + i ) ;            liMsgLen = -1;            break ;        } // end switch ( i )      } //end for i=0; i<13       loFileRead.close();      loFileStream.close();      if ( liMsgLen == -1 ) {        return liMsgLen ;           }      // get msg content from file      try {        String lsTotalLine = "" ;        loFileStream = new FileInputStream ( aoSendArg.sMsgFile ) ;        loFileRead = new BufferedReader ( new InputStreamReader(loFileStream) ) ;                while ( (lsLine = loFileRead.readLine()) != null ) {          lsTotalLine = lsTotalLine + lsLine ;        }        liMsgLen = (lsTotalLine.length() < 160 )? lsTotalLine.length() : 160 ;        aoSendArg.sMsgCon = new byte[liMsgLen + 1] ;        System.arraycopy (lsTotalLine.getBytes(), 0, aoSendArg.sMsgCon, 0, liMsgLen);      } catch ( NullPointerException e ) {        System.out.println ( "Error: Get File attribute failed, NullPointerException "            + e.toString() ) ;        liMsgLen = -1 ;      } catch ( SecurityException e ) {        System.out.println ( "Error: Failed to read file, SecurityException"            + e.toString() ) ;        liMsgLen = -1 ;      } catch ( FileNotFoundException e ) {        System.out.println ( "Error: Failed to read file, FileNotFoundException"             + e.toString() ) ;        liMsgLen = -1 ;      } catch ( IOException e ) {        System.out.println ( "Error: I/O failed, IOException" + e.toString() ) ;        liMsgLen = -1 ;      }      //end of get msg content from msg file    } catch ( FileNotFoundException e ) {      System.out.println ( "Error: Argument file open failed,FileNotFoundException:" +          e.toString() ) ;      liMsgLen = -1 ;    } catch ( IOException e ) {      System.out.println ( "Error: Argument file open failed,IOException:" +           e.toString() ) ;      liMsgLen = -1 ;    } catch ( SecurityException e ) {      System.out.println ( "Error: Argument file open failed,SecurityException:" +           e.toString() ) ;      liMsgLen = -1 ;    }    return liMsgLen ;  } //end ciParseFile  /**   * MT sent thread run method   */  public void run()  {    int i;    int liMsgLen ;    byte[] lsMsgID = new byte[20+1];    System.out.println(Thread.currentThread().getName());    if ( (liMsgLen = ciParseFile (loSendArg)) <= 0 ) {      System.out.println ( "Error: Parse file failed" ) ;      return ;    }    int liThreadLoop = ThreadTest.ciGetThreadLoop() ;    for (i=0;i<liThreadLoop;i++)    {      ciErrorCode = loThreadTest.CMPPSendSingle (        loSendArg.nNeedReply,        loSendArg.nMsgLevel,        loSendArg.sServiceID,        loSendArg.nMsgFormat,        loSendArg.sFeeType,        loSendArg.sFeeCode,        loSendArg.sValidTime,        loSendArg.sAtTime,        loSendArg.sSrcTermID,        loSendArg.sDestTermID,        liMsgLen,        loSendArg.sMsgCon,        lsMsgID,        (byte)0,        loSendArg.sFeeTermID,        (byte)0,        (byte)0,        loSendArg.cFeeTermType,loSendArg.cDestTermType,loSendArg.sLinkID) ;      //ciErrorCode=loThreadTest.GetErrCode() ;      if (ciErrorCode!=0) {        System.out.println ( Thread.currentThread().getName() +            "Send Error, ErrorCode=" + Integer.toString(ciErrorCode) ) ;      } else {        System.out.println ( Thread.currentThread().getName() +            "Send Ok, current loop i = " + i ) ;      }      Counter.SendAdd(ciErrorCode);    } //end for     System.out.println(Thread.currentThread().getName() + " Send End");  } //end run()}

⌨️ 快捷键说明

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