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

📄 crbtgwif.java

📁 中国联通炫铃业务接口开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            //启动 -> 退出程序监听线程
            ReloadServer.start(CrbtGWIFGlobal.reloadPort);
            //连接控制线程
            CrbtClientController.start();
            //发送监控线程
            CrbtSendMonitor.getInstance().start();
            
            LoggerConstant.log.info("系统启动成功 ...");
            //启动通知
            CrbtGWIFGlobal.sendMonitor("I000010");
            
        }
	}
	/**
	 * 打印CRBT接口机主要参数。
	 *
	 */
	public void printCommon(){
		LoggerConstant.log.info("----print base_information bellow:----");
		LoggerConstant.log.info("serverIP = "+CrbtGWIFGlobal.ServerIP);
		LoggerConstant.log.info("serverPort = "+CrbtGWIFGlobal.ServerPort);
		LoggerConstant.log.info("localIP = "+CrbtGWIFGlobal.LocalIP);
		LoggerConstant.log.info("localPort = "+CrbtGWIFGlobal.LocalPort);
		LoggerConstant.log.info("realodPort = "+CrbtGWIFGlobal.reloadPort);
		LoggerConstant.log.info("spanSend = "+CrbtGWIFGlobal.SpanSend);
		LoggerConstant.log.info("controlSize = "+CrbtGWIFGlobal.ControlSize);
		LoggerConstant.log.info("flowControl = "+CrbtGWIFGlobal.flowControl);
		LoggerConstant.log.info("processClassName = "+CrbtGWIFGlobal.ProcessClassName);
		LoggerConstant.log.info("ThreadNum = "+CrbtGWIFGlobal.ThreadNum);
		LoggerConstant.log.info("----base_information print over.----");
	}
	/**
	 * 添加Mynetty2客户端。
	 * @param host	服务器主机
	 * @param port	服务器主机端口
	 * @param localHost	本地主机,在仅作为客户端时,该字段可以为0
	 * @param localPort	本地端口,在仅作为客户端时,该字段可以为0
	 * @param spandSend	该参数将设定socket连接IO心跳时间间隔IDLE_TIME
	 * @param controlSize	处理类滑动窗口大小,实际应用中基本用不到
	 * @param processClassName	处理类,实现了Mynetty的sessionListener的处理类
	 */
	public void addClient(String host, int port,
	        String localHost, int localPort, int spandSend,
	        int controlSize,
	        String processClassName) {

	        CrbtClient client = new CrbtClient(host, port, localHost, localPort);
	        client.setIDLE_TIME(spandSend);
	        try {
	            ClientDefaultCrbtConnTemplet templet = this.getProcessClass(processClassName);
	            templet.setControlSize(controlSize);
	            client.registerConnTemplet(templet);
	            client.registerMessageRecognizer( new CrbtByteMessageRecognizer());
	        } catch (Exception e) {
	            throw new IllegalStateException("Class " + processClassName);
	        }

	        CrbtGWIFGlobal.vManage.add(client);
	    }
	/**
	 * 添加Mynetty2客户端。
	 * @param host	服务器主机
	 * @param port	服务器主机端口
	 * @param localHost	本地主机,在仅作为客户端时,该字段可以为0
	 * @param localPort	本地端口,在仅作为客户端时,该字段可以为0
	 * @param spandSend	该参数将设定socket连接IO心跳时间间隔IDLE_TIME
	 * @param controlSize	处理类滑动窗口大小,实际应用中基本用不到
	 * @param flowControl	重要参数!处理类下发速度控制,该值表征接口机 1 秒下发flowcontrol条信息。
	 * @param processClassName	处理类,实现了Mynetty的sessionListener的处理类
	 */
	public void addClient(String host, int port,
	        String localHost, int localPort, int spandSend,
	        int controlSize, int flowControl,
	        String processClassName) {

	        CrbtClient client = new CrbtClient(host, port, localHost, localPort);
	        client.setIDLE_TIME(spandSend);
	        try {
	        	ClientDefaultCrbtConnTemplet templet = this.getProcessClass(processClassName);
	            templet.setControlSize(controlSize);
	            templet.setPeriod(((int)(flowControl)));
	            client.registerConnTemplet(templet);
	            client.registerMessageRecognizer( new CrbtByteMessageRecognizer());
	        } catch (Exception e) {
	            throw new IllegalStateException("Class " + processClassName);
	        }

	        CrbtGWIFGlobal.vManage.add(client);
	    }
	/**
	 * 添加Mynetty客户端
	 * @param host	服务器主机
	 * @param port	服务器端口
	 * @param spandSend	该参数将设定socket连接IO心跳时间间隔IDLE_TIME
	 * @param controlSize	处理类滑动窗口大小,限制最大下发速度
	 * @param flowControl	重要参数!处理类下发速度控制,该值表征接口机 1 秒下发flowcontrol条信息。
	 * @param processClassName	处理类,实现了Mynetty的sessionListener的处理类
	 */
	public void addClient(String host, int port,
			int spandSend,
			int controlSize, int flowControl,
			String processClassName) {

		CrbtClient client = new CrbtClient(host, port);
		client.setIDLE_TIME(spandSend);
		try {
			ClientDefaultCrbtConnTemplet templet = this.getProcessClass(processClassName);
			templet.setControlSize(controlSize);
			templet.setPeriod(flowControl);
			client.registerConnTemplet(templet);
			client.registerMessageRecognizer( new CrbtByteMessageRecognizer());
		} catch (Exception e) {
			throw new IllegalStateException("Class " + processClassName);
		}

		CrbtGWIFGlobal.vManage.add(client);
	}

	/**
	 * 该方法将返回类名为className的实例。
	 * @param className	处理类名称,String型,该类必须是ClientDefaultCrbtConnTemplet的子类
	 * @return	将返回ClientDefaultCrbtConnTemplet的实例
	 */
	public ClientDefaultCrbtConnTemplet getProcessClass(String className) {
		ClassLoader loader = this.getClass().getClassLoader();
		ClientDefaultCrbtConnTemplet templet = null;

		try {
			templet = (ClientDefaultCrbtConnTemplet)loader.loadClass(className).newInstance();
		} catch (ClassNotFoundException ex) {
			ex.printStackTrace();
		} catch (IllegalAccessException ex) {
			ex.printStackTrace();
		} catch (InstantiationException ex) {
			ex.printStackTrace();
		}

		return templet;
	}
	/**
	 * 启动继承Thread类的线程。
	 * @param thread
	 */
	public void startThread(Thread thread) {
		thread.setDaemon(true);
		thread.start();
	}
	/**
	 * 启动实现Runnable接口的线程。
	 * @param runnable
	 */
	public void startThread(Runnable runnable) {
		Thread thread = new Thread(runnable);
		thread.setDaemon(true);
		thread.start();
	}
	
	/**
     * 使用帮助
     */
    private static void Usage() {
        StringBuffer sb = new StringBuffer();
        sb.append(
            "Usage: java  -Dconfig_file={炫铃网关接口配置文件} -Dlog4j={日志配置文件} -Dtype={运营商类型} -Dversion={炫铃网关接口版本} com.wireless.sms.gwif.SmsAgent \r\n");
        sb.append("       \t--Dconfig_file={}   设置短信网关接口配置文件 \r\n");
        sb.append("       \t--Dlog4j={}         设置日志配置文件 \r\n");
        sb.append(
            "       \t--Dtype={}          设置运营商类型: cm 移动,un 联通,cn 网通,ct 电信,sc\r\n");
        sb.append("       \t--Dversion={}       设置短信网关接口版本 \r\n");
        sb.append("eg: 北京移动短信网关接口\r\n");
        sb.append("    java -Dconfig_file=./conf/BJ_CM_config.xml -Dlog4j=./conf/log4j.xml -Dtype=cm -Dversion=cmpp2.0 com.wireless.sms.gwif.SmsAgent \r\n");
        System.out.println(sb.toString());
    }
	
	public static void main(String[] args){
		Runtime.getRuntime().addShutdownHook(new Thread(new CrbtStopSignal()));
		new CrbtGwif().start();
	}
}

⌨️ 快捷键说明

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