亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stressclient.java

?? JSMPP Examples to send and receive sms from java via smpp protocol.
?? JAVA
字號:
/*
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package org.jsmpp.examples;

import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;

import org.apache.log4j.PropertyConfigurator;
import org.jsmpp.InvalidResponseException;
import org.jsmpp.PDUException;
import org.jsmpp.PDUStringException;
import org.jsmpp.bean.Alphabet;
import org.jsmpp.bean.BindType;
import org.jsmpp.bean.ESMClass;
import org.jsmpp.bean.GeneralDataCoding;
import org.jsmpp.bean.MessageClass;
import org.jsmpp.bean.NumberingPlanIndicator;
import org.jsmpp.bean.RegisteredDelivery;
import org.jsmpp.bean.TypeOfNumber;
import org.jsmpp.extra.NegativeResponseException;
import org.jsmpp.extra.ResponseTimeoutException;
import org.jsmpp.session.SMPPSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * This stress client is an example of submit bulk messages asynchronously.
 * 
 * <table border="1">
 *     <tr><td><strong>Name</strong></td><td><strong>Description</strong></td><td><strong>Default value</strong></td></tr>
 *     <tr><td>jsmpp.client.host</td><td>Server host address</td><td>localhost</td></tr>
 *     <tr><td>jsmpp.client.port</td><td>Server port</td><td>8056</td></tr>
 *     <tr><td>jsmpp.client.systemId</td><td>System Identifier</td><td>j</td></tr>
 *     <tr><td>jsmpp.client.password</td><td>Password</td><td>jpwd</td></tr>
 *     <tr><td>jsmpp.client.sourceAddr</td><td>Submit Source Address</td><td>1616</td></tr>
 *     <tr><td>jsmpp.client.destinationAddr</td><td>Submit Destination Address</td><td>62161616</td>
 *     <tr><td>jsmpp.client.transactionTimer</td><td>Transaction timer</td><td>2000</td></tr>
 *     <tr><td>jsmpp.client.bulkSize</td><td>Amount of bulk messages</td><td>100000</td></tr>
 *     <tr><td>jsmpp.client.procDegree</td><td>Max parallel processor for PDU reading</td><td>3</td></tr>
 *     <tr><td>jsmpp.client.maxOutstanding</td><td>Maximum outstanding messages</td><td>10</td></tr>
 *     <tr><td>jsmpp.client.log4jPath</td><td>Log4j configuration</td><td>conf/client-log4j.properties</td></tr>
 * </table>
 * @author uudashr
 *
 */
public class StressClient implements Runnable {
    private static final String DEFAULT_PASSWORD = "jpwd";
    private static final String DEFAULT_SYSID = "j";
    private static final String DEFAULT_DESTADDR = "62161616";
    private static final String DEFAULT_SOURCEADDR = "1616";
    private static final Logger logger = LoggerFactory.getLogger(StressClient.class);
    private static final String DEFAULT_LOG4J_PATH = "stress/client-log4j.properties";
    private static final String DEFAULT_HOST = "localhost";
    private static final Integer DEFAULT_PORT = 8056;
    private static final Long DEFAULT_TRANSACTIONTIMER = 2000L;
    private static final Integer DEFAULT_BULK_SIZE = 100000;
    private static final Integer DEFAULT_PROCESSOR_DEGREE = 3;
    private static final Integer DEFAULT_MAX_OUTSTANDING = 10;
    
    private AtomicInteger requestCounter = new AtomicInteger();
    private AtomicInteger totalRequestCounter = new AtomicInteger();
    private AtomicInteger responseCounter = new AtomicInteger();
    private AtomicInteger totalResponseCounter = new AtomicInteger();
    private AtomicLong maxDelay = new AtomicLong();
    private ExecutorService execService;
    private String host;
    private int port;
    private int bulkSize;
    private SMPPSession smppSession = new SMPPSession();
    private AtomicBoolean exit = new AtomicBoolean();
    private int id;
    private String systemId;
    private String password;
    private String sourceAddr;
    private String destinationAddr;
    
    public StressClient(int id, String host, int port, int bulkSize,
            String systemId, String password, String sourceAddr,
            String destinationAddr, long transactionTimer,
            int pduProcessorDegree, int maxOutstanding) {
        this.id = id;
        this.host = host;
        this.port = port;
        this.bulkSize = bulkSize;
        this.systemId = systemId;
        this.password = password;
        this.sourceAddr = sourceAddr;
        this.destinationAddr = destinationAddr;
        smppSession.setPduProcessorDegree(pduProcessorDegree);
        smppSession.setTransactionTimer(transactionTimer);
        execService = Executors.newFixedThreadPool(maxOutstanding);
    }

    private void shutdown() {
        execService.shutdown();
        exit.set(true);
    }
    
    public void run() {
        try {
            smppSession.connectAndBind(host, port, BindType.BIND_TRX, systemId,
                    password, "cln", TypeOfNumber.UNKNOWN,
                    NumberingPlanIndicator.UNKNOWN, null);
            logger.info("Bound to " + host + ":" + port);
        } catch (IOException e) {
            logger.error("Failed initialize connection or bind", e);
            return;
        }
        new TrafficWatcherThread().start();
        
        logger.info("Starting send " + bulkSize + " bulk message...");
        for (int i = 0; i < bulkSize && !exit.get(); i++) {
            execService.execute(newSendTask("Hello " + id + " idx=" + i));
        }
        
        while (!exit.get()) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
        }
        logger.info("Done");
        smppSession.unbindAndClose();
    }
    
    private Runnable newSendTask(final String message) {
        return new Runnable() {
            public void run() {
                try {
                    requestCounter.incrementAndGet();
                    long startTime = System.currentTimeMillis();
                    smppSession.submitShortMessage(null, TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, sourceAddr, 
                            TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, destinationAddr, 
                            new ESMClass(), (byte)0, (byte)0, 
                            null, null, new RegisteredDelivery(0), 
                            (byte)0, 
                            new GeneralDataCoding(true, true, MessageClass.CLASS1, Alphabet.ALPHA_DEFAULT), 
                            (byte)0, message.getBytes());
                    long delay = System.currentTimeMillis() - startTime;
                    responseCounter.incrementAndGet();
                    if (maxDelay.get() < delay) {
                        maxDelay.set(delay);
                    }
                } catch (PDUException e) {
                    logger.error("Failed submit short message '" + message + "'", e);
                    shutdown();
                } catch (ResponseTimeoutException e) {
                    logger.error("Failed submit short message '" + message + "'", e);
                    shutdown();
                } catch (InvalidResponseException e) {
                    logger.error("Failed submit short message '" + message + "'", e);
                    shutdown();
                } catch (NegativeResponseException e) {
                    logger.error("Failed submit short message '" + message + "'", e);
                    shutdown();
                } catch (IOException e) {
                    logger.error("Failed submit short message '" + message + "'", e);
                    shutdown();
                }
            }
        };
    }
    
    private class TrafficWatcherThread extends Thread {
        @Override
        public void run() {
            logger.info("Starting traffic watcher...");
            while (!exit.get()) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                }
                int requestPerSecond = requestCounter.getAndSet(0);
                int responsePerSecond = responseCounter.getAndSet(0);
                long maxDelayPerSecond = maxDelay.getAndSet(0);
                totalRequestCounter.addAndGet(requestPerSecond);
                int total = totalResponseCounter.addAndGet(responsePerSecond);
                logger.info("Request/Response per second : " + requestPerSecond + "/" + responsePerSecond + " of " + total + " maxDelay=" + maxDelayPerSecond);
                if (total == bulkSize) {
                    shutdown();
                }
            }
        }
    }
    
    public static void main(String[] args) {
        String host = System.getProperty("jsmpp.client.host", DEFAULT_HOST);
        String systemId = System.getProperty("jsmpp.client.systemId", DEFAULT_SYSID);
        String password = System.getProperty("jsmpp.client.password", DEFAULT_PASSWORD);
        String sourceAddr = System.getProperty("jsmpp.client.sourceAddr", DEFAULT_SOURCEADDR);
        String destinationAddr = System.getProperty("jsmpp.client.destinationAddr", DEFAULT_DESTADDR);
        
        
        int port;
        try {
            port = Integer.parseInt(System.getProperty("jsmpp.client.port", DEFAULT_PORT.toString()));
        } catch (NumberFormatException e) {
            port = DEFAULT_PORT;
        }
        
        long transactionTimer;
        try {
            transactionTimer = Integer.parseInt(System.getProperty("jsmpp.client.transactionTimer", DEFAULT_TRANSACTIONTIMER.toString()));
        } catch (NumberFormatException e) {
            transactionTimer = DEFAULT_TRANSACTIONTIMER;
        }
        
        int bulkSize;
        try {
            bulkSize = Integer.parseInt(System.getProperty("jsmpp.client.bulkSize", DEFAULT_BULK_SIZE.toString()));
        } catch (NumberFormatException e) {
            bulkSize = DEFAULT_BULK_SIZE;
        }
        
        int processorDegree;
        try {
            processorDegree = Integer.parseInt(System.getProperty("jsmpp.client.procDegree", DEFAULT_PROCESSOR_DEGREE.toString()));
        } catch (NumberFormatException e) {
            processorDegree = DEFAULT_PROCESSOR_DEGREE;
        }
        
        int maxOutstanding;
        try {
            maxOutstanding = Integer.parseInt(System.getProperty("jsmpp.client.maxOutstanding", DEFAULT_MAX_OUTSTANDING.toString()));
        } catch (NumberFormatException e) {
            maxOutstanding = DEFAULT_MAX_OUTSTANDING;
        }
        
        String log4jPath = System.getProperty("jsmpp.client.log4jPath", DEFAULT_LOG4J_PATH);
        PropertyConfigurator.configure(log4jPath);
        
        
        logger.info("Target server {}:{}", host, port);
        logger.info("System ID: {}", systemId);
        logger.info("Password: {}", password);
        logger.info("Source address: {}", sourceAddr);
        logger.info("Destination address: {}", destinationAddr);
        logger.info("Transaction timer: {}", transactionTimer);
        logger.info("Bulk size: {}", bulkSize);
        logger.info("Max outstanding: {}", maxOutstanding);
        logger.info("Processor degree: {}", processorDegree);
        
        StressClient stressClient = new StressClient(0, host, port, bulkSize,
                systemId, password, sourceAddr, destinationAddr,
                transactionTimer, processorDegree, maxOutstanding);
        stressClient.run();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.在线欧美| 一区av在线播放| 在线看不卡av| 成人av午夜电影| 国产精品99久| 国产毛片一区二区| 国产精选一区二区三区| 另类小说综合欧美亚洲| 麻豆久久久久久| 国产精品影视在线观看| 国产精品一品二品| 成人午夜电影网站| 96av麻豆蜜桃一区二区| 色94色欧美sute亚洲线路二| 99久久精品99国产精品| 色综合 综合色| 欧美色爱综合网| 91精品国模一区二区三区| 日韩欧美www| 欧美国产日韩a欧美在线观看| 国产精品色婷婷久久58| 亚洲久草在线视频| 亚洲444eee在线观看| 午夜欧美在线一二页| 久久国产尿小便嘘嘘尿| 成人av网站大全| 欧美性大战久久久久久久蜜臀 | 日本不卡高清视频| 激情国产一区二区| 91亚洲永久精品| 欧美剧在线免费观看网站| 精品国产123| 日韩美女久久久| 日韩成人免费看| 成人h版在线观看| 欧美精品视频www在线观看| 久久精品一区二区| 亚洲图片欧美综合| 丰满亚洲少妇av| 5566中文字幕一区二区电影 | 成人午夜大片免费观看| 欧美亚洲动漫制服丝袜| 欧美精品一区二区三区视频| 亚洲欧美电影一区二区| 免费在线成人网| 欧美自拍偷拍一区| 国产亚洲精品aa午夜观看| 午夜精品免费在线观看| 成人久久久精品乱码一区二区三区 | 国产精品萝li| 久久er精品视频| 欧美三级电影一区| 成人欧美一区二区三区白人| 精品一区二区三区视频| 欧美四级电影在线观看| 国产精品乱码久久久久久| 免费看精品久久片| 在线亚洲免费视频| 亚洲天堂网中文字| 国产91综合网| 久久久久久黄色| 免费成人在线网站| 91精品在线观看入口| 亚洲综合一区二区精品导航| 成人午夜又粗又硬又大| 久久久久久97三级| 久久不见久久见免费视频1| 91精品国产综合久久久久久久| 日韩码欧中文字| av成人动漫在线观看| 国产精品区一区二区三| 国产精品99久久久久久久女警| 精品国产在天天线2019| 蜜臀99久久精品久久久久久软件 | 91成人免费在线视频| |精品福利一区二区三区| 成人avav影音| 中文字幕字幕中文在线中不卡视频| 成人av在线看| 亚洲色欲色欲www在线观看| www.日韩av| 亚洲男同性视频| 精品污污网站免费看| 午夜视黄欧洲亚洲| 日韩一区国产二区欧美三区| 日本中文字幕一区二区视频| 欧美一级在线视频| 精久久久久久久久久久| 国产无人区一区二区三区| 国产成人自拍在线| 中文字幕一区二区三区视频| 色域天天综合网| 亚洲大片免费看| 欧美成人高清电影在线| 国产精品1区2区| 亚洲女爱视频在线| 欧美人与禽zozo性伦| 日韩av在线免费观看不卡| 精品国产乱码久久久久久影片| 国产二区国产一区在线观看| 中文字幕在线一区免费| 欧美日韩性生活| 国内精品视频666| 中文字幕日本不卡| 69堂成人精品免费视频| 国产成人无遮挡在线视频| 亚洲女人的天堂| 日韩一级黄色片| 国产精品一卡二卡| 亚洲影院在线观看| 精品女同一区二区| 99视频超级精品| 青椒成人免费视频| 国产精品久久久久aaaa| 欧美丰满一区二区免费视频| 国产精品18久久久久久久久久久久 | 日韩国产精品91| 欧美国产日本韩| 欧美一区二区三区视频在线观看| 国产成人欧美日韩在线电影| 亚洲午夜在线观看视频在线| 久久伊人中文字幕| 欧美三级三级三级爽爽爽| 国产福利91精品一区二区三区| 亚洲一区二区在线免费观看视频 | 成人免费看视频| 美腿丝袜一区二区三区| 亚洲美女电影在线| 国产午夜精品一区二区三区嫩草| 欧美日韩视频不卡| 色诱视频网站一区| 成人av网站在线观看免费| 久久99国产精品久久99果冻传媒| 亚洲精品久久久久久国产精华液| 国产亚洲综合在线| 精品sm在线观看| 日韩欧美国产麻豆| 欧美精品aⅴ在线视频| 色呦呦网站一区| 懂色中文一区二区在线播放| 久久精品国产色蜜蜜麻豆| 一区二区不卡在线播放 | 欧美电影在哪看比较好| 色94色欧美sute亚洲线路一ni| 高清在线成人网| 国产老妇另类xxxxx| 久久99久国产精品黄毛片色诱| 日韩中文字幕91| 日韩国产在线一| 三级成人在线视频| 亚洲成在人线免费| 亚洲一区二区综合| 亚洲永久精品国产| 视频一区二区三区中文字幕| 香蕉乱码成人久久天堂爱免费| 夜夜爽夜夜爽精品视频| 一区二区三区鲁丝不卡| 亚洲一区免费视频| 丝袜国产日韩另类美女| 天天影视涩香欲综合网| 日本亚洲一区二区| 另类小说色综合网站| 国产一区二区三区在线看麻豆| 狠狠色丁香婷婷综合| 福利电影一区二区| 91在线视频网址| 欧美丝袜第三区| 欧美丰满美乳xxx高潮www| 日韩无一区二区| 久久众筹精品私拍模特| 国产精品丝袜久久久久久app| 国产精品久久二区二区| 一区二区免费在线| 日韩高清国产一区在线| 韩国女主播一区| 9i在线看片成人免费| 欧美视频完全免费看| 日韩欧美在线不卡| 中文字幕的久久| 一区二区三区不卡视频在线观看 | 欧美成人猛片aaaaaaa| 久久久久国产精品麻豆ai换脸 | 欧美日韩三级一区| 精品国产乱码久久久久久闺蜜| 国产午夜精品久久久久久免费视| 中文字幕欧美一区| 日本欧美一区二区三区乱码| 福利视频网站一区二区三区| 91黄色免费网站| 久久婷婷色综合| 亚洲成人一区在线| 国产精品69久久久久水密桃| 色综合天天综合狠狠| 日韩三级在线免费观看| 国产精品每日更新| 久久99精品久久久久久国产越南| 成人丝袜视频网| 欧美成人一区二区三区片免费| 自拍偷拍欧美精品| 国产精品羞羞答答xxdd|