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

📄 mosender.java

📁 中国联通短信通信协议
💻 JAVA
字号:
package com.wireless.sms.gwif.smsagent.workthread;

import java.util.*;
import com.wireless.gwif.socketconn.*;
import com.wireless.sms.pub.entity.MO;
import com.wireless.sms.gwif.smsagent.global.*;
//import com.wireless.sms.pub.net.MOClientSocket;
//import org.apache.log4j.Logger;
import com.wireless.sms.pub.mq.*;
import org.apache.log4j.xml.DOMConfigurator;

public class MoSender {

    private static MOQueue moqueue = GetMoMtGlobalForUsual.moqueue;
//    private static Logger log = LoggerConstant.mo_log;
    private static Vector vosa = new Vector();
    private static boolean startFlag = false;

    public static void start(String[] hosts, String[] ports) {
        if( startFlag )
            return;
        else
            startFlag = true;

        for(int i=0; i<hosts.length && i<ports.length; i++){
            ObjectSendAdapter osa = new ObjectSendAdapter();
            ObjectSendAdapter.Templet send = osa.new Templet() {
                public void processSend() {
                    if (moqueue.size() > 0 && !isClosed()) {
                        Object obj = moqueue.removeNoWait();

                        if( obj == null )
                            return;

                        boolean sendFlag = send(obj);
                        if (!sendFlag) {
                            moqueue.add(obj);
                            //SmsGWIFGlobal.sendMonitor("D000101");
                            log.error("gateway : " + SmsGWIFGlobal.getInstance().GATEWAY +  " fail send mt to router!");
                        }
                    }
                }

                /**
                 * processException
                 * @param cause Throwable
                 */
                public void processException(Throwable cause) {
                    log.error("Exception : ", cause);

                    if (cause instanceof java.io.IOException || cause instanceof java.lang.IllegalStateException) {
//                    SmsGWIFGlobal.sendMonitor("D000101");
                        log.info("Reconnecting... ");
                        ClientController.restart(this);
                    }
                }

                public void processClosed(){
                  if( this.idleFlag ){
                    ClientController.restart(this);
                  }
                }
            };

            osa.start(send, hosts[i], ports[i]);
            vosa.add(osa);
        }
    }

    public static void stop(){

        for(int i=0; i<vosa.size(); i++){
            ObjectSendAdapter tmposa = (ObjectSendAdapter)vosa.elementAt(i);
            if (startFlag && tmposa != null) {
                tmposa.stop();
            }
        }

        startFlag = false;
    }


    public static void main(String args[]){
        DOMConfigurator.configure(System.getProperty("log4j"));

        try {
            SmsGWIFGlobal agent = SmsGWIFGlobal.getInstance();
            agent.initYD_System();
        } catch (Throwable ex) {
            ex.printStackTrace();
        }

        for(int i=0; i<2; i++){
            MO mo = new MO();
            mo.setMsgContent("MO 信息 : " + i + " 测试状态");
            GetMoMtGlobalForUsual.moqueue.add(mo);
        }


//        MoSender.start(SmsGWIFGlobal.MOOUT_IP, SmsGWIFGlobal.MOOUT_PORT);
        MoSender.start(new String[]{"127.0.0.1"}, new String[]{"9000"});
//        MoSender.start(new String[]{"192.168.2.85"}, new String[]{"9000"});

        new Thread(){
            public void run(){
                try{
                    Thread.sleep(1*60*1000);
                }catch(Exception e){}

                MoSender.stop();
            }
        }.start();


    }

}

⌨️ 快捷键说明

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