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

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

?? smppserversimulator.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.Date;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeoutException;

import org.apache.log4j.BasicConfigurator;
import org.jsmpp.PDUStringException;
import org.jsmpp.SMPPConstant;
import org.jsmpp.bean.CancelSm;
import org.jsmpp.bean.DataCoding;
import org.jsmpp.bean.DataSm;
import org.jsmpp.bean.DeliveryReceipt;
import org.jsmpp.bean.ESMClass;
import org.jsmpp.bean.GSMSpecificFeature;
import org.jsmpp.bean.MessageMode;
import org.jsmpp.bean.MessageType;
import org.jsmpp.bean.NumberingPlanIndicator;
import org.jsmpp.bean.QuerySm;
import org.jsmpp.bean.RegisteredDelivery;
import org.jsmpp.bean.ReplaceSm;
import org.jsmpp.bean.SMSCDeliveryReceipt;
import org.jsmpp.bean.SubmitMulti;
import org.jsmpp.bean.SubmitMultiResult;
import org.jsmpp.bean.SubmitSm;
import org.jsmpp.bean.TypeOfNumber;
import org.jsmpp.extra.ProcessRequestException;
import org.jsmpp.session.BindRequest;
import org.jsmpp.session.DataSmResult;
import org.jsmpp.session.QuerySmResult;
import org.jsmpp.session.SMPPServerSession;
import org.jsmpp.session.SMPPServerSessionListener;
import org.jsmpp.session.ServerMessageReceiverListener;
import org.jsmpp.session.ServerResponseDeliveryAdapter;
import org.jsmpp.util.DeliveryReceiptState;
import org.jsmpp.util.MessageIDGenerator;
import org.jsmpp.util.MessageId;
import org.jsmpp.util.RandomMessageIDGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author uudashr
 *
 */
public class SMPPServerSimulator extends ServerResponseDeliveryAdapter implements Runnable, ServerMessageReceiverListener {
    private static final Integer DEFAULT_PORT = 8056;
    private static final Logger logger = LoggerFactory.getLogger(SMPPServerSimulator.class);
    private final ExecutorService execService = Executors.newFixedThreadPool(5);
    private final ExecutorService execServiceDelReciept = Executors.newFixedThreadPool(100);
    private final MessageIDGenerator messageIDGenerator = new RandomMessageIDGenerator();
    private int port;
    
    public SMPPServerSimulator(int port) {
        this.port = port;
    }
    
    public void run() {
        try {
            SMPPServerSessionListener sessionListener = new SMPPServerSessionListener(port);
            
            logger.info("Listening on port {}", port);
            while (true) {
                SMPPServerSession serverSession = sessionListener.accept();
                logger.info("Accepting connection for session {}", serverSession.getSessionId());
                serverSession.setMessageReceiverListener(this);
                serverSession.setResponseDeliveryListener(this);
                execService.execute(new WaitBindTask(serverSession));
            }
        } catch (IOException e) {
            logger.error("IO error occured", e);
        }
    }
    
    public QuerySmResult onAcceptQuerySm(QuerySm querySm,
            SMPPServerSession source) throws ProcessRequestException {
        logger.info("Accepting query sm, but not implemented");
        return null;
    }
    
    public MessageId onAcceptSubmitSm(SubmitSm submitSm,
            SMPPServerSession source) throws ProcessRequestException {
        MessageId messageId = messageIDGenerator.newMessageId();
        logger.debug("Receiving submit_sm {}, and return message id {}", new String(submitSm.getShortMessage()), messageId.getValue());
        if (SMSCDeliveryReceipt.SUCCESS.containedIn(submitSm.getRegisteredDelivery()) || SMSCDeliveryReceipt.SUCCESS_FAILURE.containedIn(submitSm.getRegisteredDelivery())) {
            execServiceDelReciept.execute(new DeliveryReceiptTask(source, submitSm, messageId));
        }
        return messageId;
    }
    
    public void onSubmitSmRespSent(MessageId messageId,
            SMPPServerSession source) {
        logger.debug("submit_sm_resp with message_id {} has been sent", messageId);
    }
    
    public SubmitMultiResult onAcceptSubmitMulti(SubmitMulti submitMulti,
            SMPPServerSession source) throws ProcessRequestException {
        return null;
    }
    
    public DataSmResult onAcceptDataSm(DataSm dataSm)
            throws ProcessRequestException {
        return null;
    }
    
    public void onAcceptCancelSm(CancelSm cancelSm, SMPPServerSession source)
            throws ProcessRequestException {
    }
    
    public void onAcceptReplaceSm(ReplaceSm replaceSm, SMPPServerSession source)
            throws ProcessRequestException {
    }
    
    private class WaitBindTask implements Runnable {
        private final SMPPServerSession serverSession;
        
        public WaitBindTask(SMPPServerSession serverSession) {
            this.serverSession = serverSession;
        }

        public void run() {
            try {
                BindRequest bindRequest = serverSession.waitForBind(1000);
                logger.info("Accepting bind for session {}", serverSession.getSessionId());
                try {
                    bindRequest.accept("sys");
                } catch (PDUStringException e) {
                    logger.error("Invalid system id", e);
                    bindRequest.reject(SMPPConstant.STAT_ESME_RSYSERR);
                }
            
            } catch (IllegalStateException e) {
                logger.error("System error", e);
            } catch (TimeoutException e) {
                logger.warn("Wait for bind has reach timeout", e);
            } catch (IOException e) {
                logger.error("Failed accepting bind request for session {}", serverSession.getSessionId());
            }
        }
    }
    
    private class DeliveryReceiptTask implements Runnable {
        private final SMPPServerSession session;
        private final SubmitSm submitSm;
        private MessageId messageId;
        public DeliveryReceiptTask(SMPPServerSession session,
                SubmitSm submitSm, MessageId messageId) {
            this.session = session;
            this.submitSm = submitSm;
            this.messageId = messageId;
        }

        public void run() {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e1) {
                e1.printStackTrace();
            }
            String stringValue = Integer.valueOf(messageId.getValue(), 16).toString();
            try {
                
                DeliveryReceipt delRec = new DeliveryReceipt(stringValue, 1, 1, new Date(), new Date(), DeliveryReceiptState.DELIVRD,  null, new String(submitSm.getShortMessage()));
                session.deliverShortMessage(
                        "mc", 
                        TypeOfNumber.valueOf(submitSm.getDestAddrTon()), 
                        NumberingPlanIndicator.valueOf(submitSm.getDestAddrNpi()), 
                        submitSm.getDestAddress(), 
                        TypeOfNumber.valueOf(submitSm.getSourceAddrTon()), 
                        NumberingPlanIndicator.valueOf(submitSm.getSourceAddrNpi()), 
                        submitSm.getSourceAddr(), 
                        new ESMClass(MessageMode.DEFAULT, MessageType.SMSC_DEL_RECEIPT, GSMSpecificFeature.DEFAULT), 
                        (byte)0, 
                        (byte)0, 
                        new RegisteredDelivery(0), 
                        DataCoding.newInstance(0), 
                        delRec.toString().getBytes());
                logger.debug("Sending delivery reciept for message id " + messageId + ":" + stringValue);
            } catch (Exception e) {
                logger.error("Failed sending delivery_receipt for message id " + messageId + ":" + stringValue, e);
            }
        }
    }
    
    
    public static void main(String[] args) {
        int port;
        try {
            port = Integer.parseInt(System.getProperty("jsmpp.simulator.port", DEFAULT_PORT.toString()));
        } catch (NumberFormatException e) {
            port = DEFAULT_PORT;
        }
        BasicConfigurator.configure();
        SMPPServerSimulator smppServerSim = new SMPPServerSimulator(port);
        smppServerSim.run();
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩你懂得| 欧美精品一区二| 中文无字幕一区二区三区| 亚洲最新在线观看| 欧美猛男超大videosgay| 精品一区二区三区久久久| 久久夜色精品国产欧美乱极品| 91麻豆精品国产综合久久久久久 | 26uuu国产日韩综合| 91麻豆精品国产91久久久久久| 欧美巨大另类极品videosbest | 国产精品高清亚洲| 欧美艳星brazzers| 国产主播一区二区| 亚洲欧美色图小说| 欧美一级xxx| 91香蕉视频在线| 蜜乳av一区二区| 亚洲视频一区在线观看| 精品国产成人系列| 欧美日韩夫妻久久| 91精品国产欧美日韩| 99久久精品久久久久久清纯| 狠狠色丁香久久婷婷综合丁香| 九九久久精品视频| 福利一区在线观看| 久久精品国产99国产| 亚洲成av人影院在线观看网| 国产精品丝袜黑色高跟| 亚洲人被黑人高潮完整版| 亚洲电影中文字幕在线观看| 国产精品久久久久精k8 | 在线观看日韩一区| 成人激情免费网站| 蜜臀精品一区二区三区在线观看| 免费成人性网站| 肉色丝袜一区二区| 亚洲国产成人av| 国内精品嫩模私拍在线| 色综合久久综合网97色综合| 国产成人精品在线看| 国产精品一区二区久激情瑜伽| 日本午夜一区二区| 日韩精彩视频在线观看| 欧美在线视频日韩| 久久夜色精品一区| 亚洲chinese男男1069| 高清不卡一区二区在线| 欧美人与z0zoxxxx视频| 国产精品卡一卡二| 精品无人区卡一卡二卡三乱码免费卡 | 欧美系列亚洲系列| 国产欧美一二三区| 久久一区二区视频| 亚洲高清一区二区三区| 97久久精品人人澡人人爽| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品欧美极品| 伦理电影国产精品| 欧美日韩国产天堂| 亚洲色图欧美偷拍| 成人国产在线观看| 久久久久97国产精华液好用吗| 久久这里只精品最新地址| 午夜久久久影院| 精品一二三四区| 欧美群妇大交群中文字幕| 亚洲男人的天堂在线aⅴ视频| 国产精品夜夜嗨| 26uuu成人网一区二区三区| 六月婷婷色综合| 精品少妇一区二区三区在线播放| 久久久精品国产99久久精品芒果| 奇米888四色在线精品| 欧美精品亚洲一区二区在线播放| 亚洲乱码中文字幕| 麻豆精品新av中文字幕| 欧美一区二区三区免费在线看 | 国产精品一区专区| 久久久不卡网国产精品一区| 国产专区综合网| 国产亚洲成av人在线观看导航| 一区二区三区在线视频免费| 99riav久久精品riav| 欧美国产成人在线| 不卡区在线中文字幕| 午夜国产精品影院在线观看| 成人精品免费网站| 在线不卡中文字幕播放| 视频一区中文字幕国产| 91精选在线观看| 捆绑变态av一区二区三区| 精品久久五月天| 国产精品99久久不卡二区| 亚洲国产精品高清| 一本到三区不卡视频| 五月天网站亚洲| 欧美日本高清视频在线观看| 麻豆成人综合网| 国产亚洲一区字幕| 94-欧美-setu| 热久久久久久久| 国产精品福利影院| 欧美日韩一区国产| 久久精品国产网站| 中文字幕在线观看不卡| 狠狠色狠狠色综合日日91app| 国产欧美一二三区| 欧美日韩激情在线| 国产福利精品一区| 亚洲地区一二三色| 久久免费精品国产久精品久久久久| 成人动漫中文字幕| 强制捆绑调教一区二区| 国产精品色婷婷久久58| 欧美老女人第四色| 国产**成人网毛片九色 | 国产精品一品二品| 亚洲综合视频在线观看| 91免费在线看| 麻豆成人av在线| 一区二区三区四区五区视频在线观看| 欧美一二三在线| 在线免费观看日本欧美| 欧美伊人久久久久久午夜久久久久| 蜜臀av性久久久久蜜臀av麻豆| 国产精品福利av| 亚洲精品在线免费播放| 欧美日韩中文字幕一区二区| 国产成人在线免费观看| 日韩福利电影在线| 亚洲精品免费视频| 国产三级欧美三级日产三级99| 欧美在线视频你懂得| 成人短视频下载| 国产乱码字幕精品高清av| 五月激情丁香一区二区三区| 日韩一区在线看| 欧美激情在线观看视频免费| 欧美mv和日韩mv的网站| 91精品国产综合久久久蜜臀粉嫩| 色悠悠亚洲一区二区| 国产91在线|亚洲| 韩国成人精品a∨在线观看| 青草av.久久免费一区| 亚洲图片欧美视频| 亚洲精品成a人| 伊人婷婷欧美激情| 亚洲精品久久久蜜桃| 日韩伦理电影网| 中文字幕一区二区三| 中文字幕一区二区三区在线播放| 久久亚洲精品国产精品紫薇| 精品国产乱码久久久久久蜜臀 | 国产成人精品网址| 国产麻豆视频精品| 亚洲视频免费看| 亚洲欧洲中文日韩久久av乱码| 国产精品毛片大码女人| 中文字幕在线观看一区二区| 国产精品国产成人国产三级| 国产精品每日更新| 亚洲啪啪综合av一区二区三区| 日韩理论片网站| 有坂深雪av一区二区精品| 亚洲一区二区三区不卡国产欧美| 一区二区三区日韩精品| 亚洲v中文字幕| 久久精品国产精品青草| 国产成a人亚洲| 色综合视频在线观看| 欧美体内she精视频| 欧美一区二区三区视频免费 | 日本一道高清亚洲日美韩| 日本不卡的三区四区五区| 精品一区二区三区在线视频| 国产风韵犹存在线视精品| 成人黄色在线网站| 欧美视频日韩视频| 精品第一国产综合精品aⅴ| 国产视频一区二区三区在线观看| 中文字幕永久在线不卡| 亚洲123区在线观看| 国产真实乱偷精品视频免| 成人免费高清视频在线观看| 欧美最猛性xxxxx直播| 日韩欧美第一区| 欧美日韩电影在线播放| 精品国产乱码久久久久久蜜臀| 中文字幕av资源一区| 亚洲电影在线免费观看| 国内精品国产三级国产a久久 | 在线观看日韩一区| 欧美成人女星排名| 中文字幕亚洲在| 激情都市一区二区| 91精品1区2区| 欧美色图天堂网| 亚洲国产高清不卡| 日本欧美一区二区|