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

📄 socketfactfactory.java

📁 用java开发的一些实用的短信通信模块其中包含MD5加密、http发送等信息
💻 JAVA
字号:
package lib.commons.net;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import lib.commons.Utils;
import lib.commons.config.DomConfig;

public final class SocketFactFactory {
	private static Map _factMap;

	private static SocketFactory _defaultSocketFact = new SocketFactory();

	private static String _defaultFactName;

	private SocketFactFactory() {
	}

	public static String getDefaultFactName() {
		return null == _defaultFactName ? Utils.EMPTY_STRING : _defaultFactName;
	}

	public static SocketFactory getSocketFactory() {
		SocketFactory fact = getSocketFactory(null);
		return null == fact ? _defaultSocketFact : fact;
	}

	public static SocketFactory getSocketFactory(String factName) {
		factName = null == factName ? getDefaultFactName() : factName;
		SocketFactory fact = null;
		Map tmpfactMap = _factMap;
		if (null != tmpfactMap && tmpfactMap.containsKey(factName))
			fact = (SocketFactory) tmpfactMap.get(factName);
		return fact;
	}

	public static Socket createSocket(String address, int port,
			int connectionTimeout, int readTimeout) throws IOException,
			UnknownHostException {
		SocketFactory fact = getSocketFactory();
		Socket socket = null;
		if (null != fact)
			socket = fact.createSocket(address, port, connectionTimeout,
					readTimeout);
		return socket;
	}

	public static Socket createSocket(String factName, String address,
			int port, int connectionTimeout, int readTimeout)
			throws IOException, UnknownHostException {
		SocketFactory fact = getSocketFactory(factName);
		Socket socket = null;
		if (null != fact)
			socket = fact.createSocket(address, port, connectionTimeout,
					readTimeout);
		return socket;
	}

	private static lib.commons.logging.Log log = lib.commons.logging.LogFactory
			.getLog(SocketFactFactory.class);

	public static void loadXmlFile(String xmlFilePath) {
		try {
			DomConfig domConfig = DomConfig.loadXmlFile(xmlFilePath);
			DomConfig factFactConfig = domConfig
					.selectChildConfig("SocketFactFactory");
			if (null == factFactConfig || factFactConfig.isEmpty())
				factFactConfig = domConfig;
			loadDomConfig(factFactConfig);
		} catch (Exception err) {
			log.error("Load xml file '" + xmlFilePath + "' error:"
					+ err.getMessage(), err);
		}
	}

	public static void loadXml(String xml) {
		try {
			DomConfig domConfig = DomConfig.loadXml(xml);
			DomConfig factFactConfig = domConfig
					.selectChildConfig("SocketFactFactory");
			if (null == factFactConfig || factFactConfig.isEmpty())
				factFactConfig = domConfig;
			loadDomConfig(factFactConfig);
		} catch (Exception err) {
			log.error("Load xml '" + xml + "' error:" + err.getMessage(), err);
		}
	}

	public static void loadDomConfig(DomConfig domConfig) {
		Map tmp_factMap = new HashMap();
		String tmp_defaultFactName = null;
		if (null != domConfig && !domConfig.isEmpty()) {
			try {
				tmp_defaultFactName = domConfig
						.selectValue("DefualtSocketFactory");
			} catch (Exception err) {
				log.error(
						"Load DefualtSocketFactory error:" + err.getMessage(),
						err);
			}
			try {
				DomConfig[] factConfigs = domConfig
						.selectChildConfigs("SocketFactory");
				for (int i = 0; null != factConfigs && i < factConfigs.length; i++) {
					try {
						String factName = factConfigs[i].selectValue("name");
						factName = null == factName ? Utils.EMPTY_STRING
								: factName;
						if (!tmp_factMap.containsKey(factName)) {
							String clazz = factConfigs[i].selectValue("class");
							SocketFactory tmpsocketFact = (SocketFactory) Class
									.forName(clazz).newInstance();
							DomConfig propConfig = factConfigs[i]
									.selectChildConfig("properties");
							SocketFactory socketFact = tmpsocketFact
									.createInstance(propConfig);
							tmp_factMap.put(factName, socketFact);
						} else {
							log.warn("Load SocketFactory warn : " + factName
									+ " is exists");
						}
					} catch (Exception ex) {
						log.error("Load SocketFactory " + i + " error:"
								+ ex.getMessage(), ex);
					}
				}
			} catch (Exception err) {
				log.error("Load SocketFactory error:" + err.getMessage(), err);
			}
		}
		_factMap = tmp_factMap;
		_defaultFactName = tmp_defaultFactName;
	}
}

⌨️ 快捷键说明

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