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

📄 moclientsocket.java

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

import java.util.Vector;
//import java.net.Socket;
//import java.io.BufferedOutputStream;
import java.io.IOException;
import java.util.*;
//import java.io.FileOutputStream;
import com.wireless.sms.pub.entity.MO;
//import java.io.ObjectOutputStream;
import java.nio.channels.SocketChannel;
import java.net.*;
import java.nio.*;
import org.apache.log4j.Logger;
import com.wireless.sms.pub.util.CryptoTool;

/**
 * <p>Title: 无线增值业务平台----短信平台-----应用框架</p>
 * <p>Description: 主要接收MO/MT交换中心发送过来的MT,压入MTQueue中,解析MT的数据包,写入文件,分解数据为中国移动认可的数据</p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: moon</p>
 * @author tech team
 * @version 1.0
 */

public class MOClientSocket {

    private Vector mohost = new Vector();
    private Vector moport = new Vector();
    private static MOClientSocket moClientSocket = null;
    private Logger log = null;
    private String[] address = new String[0];
    private String[] ports = new String[0];

    /**
     * 设置监控地址
     * @param address String[]  IP 地址
     * @param ports String[]  端口号
     */
    public void setMonitor(String[] address, String[] ports) {
        this.address = address;
        this.ports = ports;
    }

    public static MOClientSocket getInstance() {
        if (moClientSocket == null) {
            moClientSocket = new MOClientSocket();
        }
        return moClientSocket;
    }


    public MOClientSocket(String[] host, String[] port) {

        for (int i = 0; i < host.length; i++) {
            mohost.add(host[i]);
        }

        for (int i = 0; i < port.length; i++) {
            moport.add(port[i]);
        }
    }

    public MOClientSocket(String host, String port) {
        mohost.add(host);
        moport.add(port);
    }

    private MOClientSocket() {

        String hosts = "211.94.156.167";
        String ports = "8600,8601,8602,8603,8604,8605,8606,8607,8608,8609,8610,8611,8612,8613,8614,8615,8616,8617,8618,8619";

        StringTokenizer hostips = new StringTokenizer(hosts, ",");
        StringTokenizer hostports = new StringTokenizer(ports, ",");
        String tmpStr = null;

        while (hostips.hasMoreTokens()) {
            tmpStr = hostips.nextToken().toString();
            mohost.add(tmpStr);
        }

        while (hostports.hasMoreTokens()) {
            tmpStr = hostports.nextToken().toString();
            moport.add(tmpStr);
        }
    }

    public void setLog(Logger log) {
        this.log = log;
    }

    public boolean sendMO(MO mo) throws Exception {

        mo.setMsgContent(CryptoTool.base64Encode(mo.getMsgContent()));

        boolean thisflag = false;
        String host = null;
        int port = 0;

        for (int i = 0; i < mohost.size() && thisflag == false; i++) {
            for (int j = 0; j < moport.size() && thisflag == false; j++) {
                try {

                    host = (String)this.mohost.elementAt(i);
                    port = Integer.parseInt((String)this.moport.elementAt(j));

                    SocketChannel sc = SocketChannel.open();
                    InetSocketAddress address = new InetSocketAddress(InetAddress.getByName(host), port);
                    sc.connect(address);

                    ByteBuffer buffer = ByteBuffer.allocate(2048);

                    if (sc.isConnected()) {

                        try {
                            buffer.clear();
                            buffer.put(mo.toString().getBytes());
                            buffer.flip();
                            sc.write(buffer);
                            sc.close();
                            thisflag = true;
                        } catch (IOException ex) {
                            sc.close();
                            thisflag = false;
                            throw ex;
                        }
                    }
                } catch (Exception ex) {
                    thisflag = false;
                    throw ex;
                }
            }
        }

        return thisflag;
    }

    public static void main(String args[]) throws Exception {
        MOClientSocket moClientSocket = new MOClientSocket("192.168.2.85", "9000");
        moClientSocket.sendMO(MO.getInstance("<mo><moID>67B6B886069D62EF35CD6D6E72A372F0</moID><msgLevel></msgLevel><msgFormat>8</msgFormat><srcTermID>13160165818</srcTermID><destTermID>188</destTermID><gateWay>28</gateWay><msgLen>4</msgLen><msgContent>高燕</msgContent><tpPid>0</tpPid><tpUdhi>0</tpUdhi><serviceID>119</serviceID><moType>2</moType><cityID>500</cityID><provinceID>11</provinceID><mouseID>1</mouseID><processClass>com.wireless.sms.business.logicprocess.LogicManager</processClass><longCode>188</longCode><linkID>34395896</linkID><spnumber>9808</spnumber><fee_terminal_type>0</fee_terminal_type><serviceCode></serviceCode><msgID>102501331000016181817911</msgID><stat></stat><sendNum>0</sendNum><remark1></remark1><remark2></remark2></mo>"));
    }

	public synchronized String[] getAddress() {
		return address;
	}

	public synchronized void setAddress(String[] address) {
		this.address = address;
	}

	public synchronized String[] getPorts() {
		return ports;
	}

	public synchronized void setPorts(String[] ports) {
		this.ports = ports;
	}

	public synchronized Logger getLog() {
		return log;
	}
}

⌨️ 快捷键说明

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