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

📄 socketdatahelper.java

📁 短信发送
💻 JAVA
字号:
/**
 * Created at Nov 20, 2008
 */
package com.jdev.net.data;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;

import com.jdev.net.protocol.ProtocolWrapFactory;
import com.jdev.net.queue.MessageQueue;
import com.jdev.net.queue.QueueFactory;
import com.jdev.util.Debug;

/**
 * <p>Title: SocketDataHelper</p>
 * <p>Description: </p>
 * @author Lawrence
 * @version 1.0
 */
public class SocketDataHelper {

	private final static String module = SocketDataHelper.class.getName();
	private final static ProtocolWrapFactory wrapFactory = ProtocolWrapFactory
			.getInstance();
	private final static QueueFactory queueFactory = QueueFactory.getInstance();
	private int queueType;

	/**
	 * 
	 */
	public SocketDataHelper(int queueType) {
		this.queueType = queueType;
	}

	public int getRequestCount() {
		MessageQueue messageQueue = queueFactory.getQueue(queueType);
		return messageQueue.getRequestRecord();
	}
	
	public int getResponseCount() {
		MessageQueue messageQueue = queueFactory.getQueue(queueType);
		return messageQueue.getResponseRecord();
	}

	/**
	 * 从Queue中取出Request 并实行协议包装
	 */
	public byte[] sendRequest() throws Exception {
		byte[] request = null;
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			ByteArrayOutputStream outByte = (ByteArrayOutputStream) messageQueue
					.removeReqFirst();
			request = wrapFactory.getRequest(outByte.toByteArray());
		} catch (Exception ex) {
			Debug.logError("sendRequest() error:" + ex, module);
			throw new Exception(ex);
		}
		return request;
	}

	/**
	 * 将Request去除协议解码,正文内容保存到Queue中,
	 */
	public InputStream receiveRequest(byte[] array) throws Exception {
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			byte[] content = wrapFactory.getContentFromRequest(array);
			InputStream bin = new ByteArrayInputStream(content);
			messageQueue.pushRequest(bin);
			return bin;
		} catch (Exception ex) {
			Debug.logError("receiveRequest error:" + ex, module);
			throw new Exception(ex);
		}
	}

	/**
	 *  从Queue中取出Response 并实行协议包装
	 */
	public byte[] sendResponse() throws Exception {
		byte[] response = null;
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			ByteArrayOutputStream bout = (ByteArrayOutputStream) messageQueue
					.removeResFirst();
			response = wrapFactory.getResponse(bout.toByteArray());

		} catch (Exception ex) {
			Debug.logError("sendResponse() error:" + ex, module);
			throw new Exception(ex);
		}
		return response;
	}

	/**
	 * 将Response去除协议解码,正文内容保存到Queue中,
	 * @param array
	 */
	public InputStream receiveResponse(byte[] array) throws Exception {
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			byte[] response = wrapFactory.getContentFromResponse(array);
			InputStream bin = new ByteArrayInputStream(response);
			messageQueue.pushResponse(bin);

			return bin;
		} catch (Exception ex) {
			Debug.logError("receiveResponse error:" + ex, module);
			throw new Exception(ex);
		}
	}

	/**
	 * 将Request去除协议解码,正文内容保存到Queue中,
	 * @param array
	 */
	public InputStream putRequest(byte[] array) throws Exception {
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			byte[] res = wrapFactory.getContentFromRequest(array);
			InputStream bin = new ByteArrayInputStream(res);
			messageQueue.pushRequest(bin);

			return bin;
		} catch (Exception ex) {
			Debug.logError("putRequest error:" + ex, module);
			throw new Exception(ex);
		}		
	}

	/**
	 *  从Queue中取出Response 并实行协议包装
	 */
	public byte[] getRequest() throws Exception {
		byte[] response = null;
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			ByteArrayOutputStream bout = (ByteArrayOutputStream) messageQueue
					.removeResFirst();
			response = wrapFactory.getRequest(bout.toByteArray());

		} catch (Exception ex) {
			Debug.logError("getRequest() error:" + ex, module);
			throw new Exception(ex);
		}
		return response;
	}
	
	/**
	 * 将Response去除协议解码,正文内容保存到Queue中,
	 * @param array
	 */
	public InputStream putResponse(byte[] array) throws Exception {
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			byte[] res = wrapFactory.getContentFromResponse(array);
			InputStream bin = new ByteArrayInputStream(res);
			messageQueue.pushResponse(bin);

			return bin;
		} catch (Exception ex) {
			Debug.logError("putResponse error:" + ex, module);
			throw new Exception(ex);
		}		
	}
	
	/**
	 *  从Queue中取出Response 并实行协议包装
	 */
	public byte[] getResponse() throws Exception {
		byte[] response = null;
		try {
			MessageQueue messageQueue = queueFactory.getQueue(queueType);
			ByteArrayOutputStream bout = (ByteArrayOutputStream) messageQueue
					.removeResFirst();
			response = wrapFactory.getResponse(bout.toByteArray());

		} catch (Exception ex) {
			Debug.logError("getResponse() error:" + ex, module);
			throw new Exception(ex);
		}
		return response;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

⌨️ 快捷键说明

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