亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? outbindreceiver.java

?? Short Message Peer to Peer
?? JAVA
字號:
/*
 * Copyright (c) 1996-2001
 * Logica Mobile Networks Limited
 * All rights reserved.
 *
 * This software is distributed under Logica Open Source License Version 1.0
 * ("Licence Agreement"). You shall use it and distribute only in accordance
 * with the terms of the License Agreement.
 *
 */
package org.smpp;

import java.io.IOException;
import java.io.InterruptedIOException;

import org.smpp.Data;
import org.smpp.pdu.*;
import org.smpp.pdu.tlv.TLVException;
import org.smpp.util.*;

/**
 * This class is for receiving outbind request from SMSC.
 * It listens on server socket for client connection, if the connection
 * is accepted and created, it reads a PDU on the connection and if it is 
 * outbind pdu, it creates an <code>OutbindEvent</code> and passes it to the
 * <code>OutbindEventListener</code>.
 *
 * @author Logica Mobile Networks SMPP Open Source Team
 * @version $Revision: 1.1 $
 */

public class OutbindReceiver extends ReceiverBase {
	/**
	 * Name of the thread created when starting
	 * the <code>ProcessingThread</code>.
	 */
	private static final String OUTBIND_RECEIVER_THREAD_NAME = "OutbindRcv";

	/**
	 * The connection on which is the outbind receiver listening for
	 * client request.
	 */
	private Connection serverConnection = null;

	/**
	 * The timeout for the single attempt to accept a client connection.
	 */
	private long acceptTimeout = Data.ACCEPT_TIMEOUT;

	/**
	 * The listener which is passed the accepted connection with
	 * the <code>Outbind</code> pdu.
	 */
	private OutbindEventListener listener = null;

	/**
	 * The buffer for unprocessed data received from the connection.
	 * Used when incomplete data are received from the connection
	 * in one try.
	 */
	private Unprocessed unprocessed = new Unprocessed();

	/**
	 * Disable instantiation without connection.
	 */
	private OutbindReceiver() {
	}

	/**
	 * Instantiate with the server connection.
	 */
	public OutbindReceiver(Connection serverConnection) {
		this.serverConnection = serverConnection;
	}

	protected PDU tryReceivePDU(Connection connection, PDU expectedPDU)
		throws UnknownCommandIdException, TimeoutException, PDUException, IOException {
		PDU pdu = null;
		pdu = receivePDUFromConnection(connection, unprocessed);
		if (pdu != null) {
			if (!pdu.equals(expectedPDU)) {
				pdu = null;
			}
		}
		return pdu;
	}

	protected void receiveAsync() {
		PDU pdu;
		Connection connection = null;
		// Outbind is the expected PDU, see Outbind.equals() (doesn't care
		// about sequence number)
		Outbind outbind = new Outbind();
		try {
			serverConnection.setReceiveTimeout(getAcceptTimeout());
			connection = serverConnection.accept();
		} catch (InterruptedIOException e) {
			// thrown when the timeout expires => it's ok, we just didn't
			// receive anything
		} catch (IOException e) {
			// accept can throw this from various reasons
			// and we don't want to continue any more
			stopProcessing(e);
		}
		if (connection != null) {
			unprocessed.reset(); // have new connection => reset old unprocessed
			pdu = null;
			try {
				pdu = tryReceivePDUWithTimeout(connection, outbind);
				// we must catch every exception as this is thread running
				// on the background and we don't want it to terminate
				// in uncontrolled manner
			} catch (InvalidPDUException e) {
				event.write(e, "Buffer didn't contain enough data, continuing.");
			} catch (UnknownCommandIdException e) {
				event.write(e, "Unknown command id, continuing.");
			} catch (TimeoutException e) {
				debug.write("Timeout expired, message not received completly in time.");
			} catch (TLVException e) {
				event.write(e, "Wrong TLV");
			} catch (PDUException e) {
				event.write(e, "Wrong PDU");
			} catch (Exception e) {
				event.write(e, "Unspecified exception");
				stopProcessing(e);
			}
			if (pdu != null) {
				if (pdu.getCommandId() == Data.OUTBIND) {
					debug.write("Got outbind PDU, sending event info. " + pdu.debugString());
					sendOutbindEvent(new OutbindEvent(this, connection, (Outbind) pdu));
				} else {
					debug.write("PDU isn't outbind, throwing away. " + pdu.debugString());
					// not outbind => throw the pdu away
				}
			}
		}
	}

	/**
	 * Sends the outbind event to the listener.
	 */
	private void sendOutbindEvent(OutbindEvent event) {
		if (listener != null) {
			listener.handleOutbind(event);
		}
	}

	/**
	 * Sets the timeout for accepting a connection.
	 * If the timeout expires, the receiver thread loops and tries to accept
	 * the connection again. (Infinite cycles are evil.)
	 */
	public synchronized void setAcceptTimeout(long acceptTimeout) {
		this.acceptTimeout = acceptTimeout;
	}

	/**
	 * Sets the listener for receiving the <code>OutbindEvent</code>.
	 */
	public void setOutbindListener(OutbindEventListener listener) {
		this.listener = listener;
	}

	/**
	 * Returns the current setting of the accept timeout.
	 */
	public synchronized long getAcceptTimeout() {
		return acceptTimeout;
	}

	/**
	 * Returns the current outbind listener.
	 */
	public OutbindEventListener getOutbindListener() {
		return listener;
	}

	// ProcessingThread's getThreadName override
	public String getThreadName() {
		return OUTBIND_RECEIVER_THREAD_NAME;
	}
}
/*
 * $Log: OutbindReceiver.java,v $
 * Revision 1.1  2003/07/23 00:28:39  sverkera
 * Imported
 *
 *
 * Old changelog:
 * 01-10-01 ticp@logica.com added function getThreadName for ProcessingThread
 *						   thread name initialisation -- reflecting the intro 
 *						   of ProcessingThread in the hierarchy
 * 01-10-01 ticp@logica.com some more comments added
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
wwww国产精品欧美| 欧美午夜精品理论片a级按摩| 亚洲午夜电影网| 亚洲精品成人天堂一二三| ...xxx性欧美| 1000部国产精品成人观看| 亚洲男人天堂av| 亚洲色图欧洲色图| 亚洲国产综合色| 日韩av电影免费观看高清完整版| 日韩高清不卡一区二区三区| 久久国产成人午夜av影院| 九九精品一区二区| 国产成人免费xxxxxxxx| 国产一区二区三区蝌蚪| av资源站一区| 欧美日韩亚洲综合一区二区三区| 51精品久久久久久久蜜臀| 欧美电视剧免费全集观看| 国产欧美视频在线观看| 亚洲蜜桃精久久久久久久| 婷婷国产在线综合| 国产精品亚洲成人| 欧美日韩综合在线免费观看| 精品噜噜噜噜久久久久久久久试看| 精品国产sm最大网站| 国产精品久久久久久一区二区三区| 亚洲欧美日韩国产一区二区三区 | 成人小视频免费观看| 成人av网址在线| 欧美巨大另类极品videosbest | 色综合色综合色综合色综合色综合 | 一本一道波多野结衣一区二区| 欧美三级电影在线看| 欧美成人猛片aaaaaaa| 亚洲三级免费电影| 久久精品久久99精品久久| 成年人国产精品| 日韩午夜中文字幕| 中文字幕亚洲在| 久久 天天综合| 欧美日韩午夜精品| 亚洲欧美欧美一区二区三区| 日本不卡一区二区三区高清视频| 北岛玲一区二区三区四区| 日韩一区国产二区欧美三区| 亚洲欧洲一区二区在线播放| 日韩中文字幕一区二区三区| 成人黄色av网站在线| 日韩欧美国产一二三区| 亚洲国产乱码最新视频| 99久久精品国产导航| 久久精品这里都是精品| 免费在线欧美视频| 欧美色图12p| 亚洲男人天堂av网| 一本色道久久综合亚洲91| 欧美国产一区二区在线观看| 久热成人在线视频| 91精品久久久久久蜜臀| 亚洲网友自拍偷拍| 一本久久a久久精品亚洲| 中文字幕中文在线不卡住| 国产精品资源站在线| 26uuu国产一区二区三区| 久久机这里只有精品| 欧美日韩一级二级| 午夜不卡av免费| 在线综合视频播放| 日韩—二三区免费观看av| 欧美视频完全免费看| 一区二区激情小说| 欧美日韩在线一区二区| 亚洲在线一区二区三区| 在线观看亚洲一区| 亚洲成人动漫在线免费观看| 91国偷自产一区二区三区成为亚洲经典| 国产精品成人免费精品自在线观看| 国产成a人亚洲| 国产精品久久久久久久久图文区 | 欧美日韩一级片在线观看| 夜夜爽夜夜爽精品视频| 在线看国产日韩| 午夜视频一区在线观看| 欧美精品一二三区| 麻豆视频一区二区| 久久久久久久久岛国免费| 国产成人av一区二区三区在线观看| 久久久久久综合| 成人av在线网站| 亚洲精品videosex极品| 欧美精选午夜久久久乱码6080| 调教+趴+乳夹+国产+精品| 日韩精品一区二区在线| 粉嫩嫩av羞羞动漫久久久| 亚洲乱码国产乱码精品精的特点 | 色天天综合色天天久久| 午夜精品久久一牛影视| 日韩精品最新网址| 不卡欧美aaaaa| 日韩精品色哟哟| 久久久一区二区三区捆绑**| 波多野结衣在线aⅴ中文字幕不卡| 一区二区久久久久久| 精品国产亚洲一区二区三区在线观看| 国产精品综合一区二区三区| 亚洲欧洲日韩女同| 日韩一区二区在线看| 成人18视频日本| 美脚の诱脚舐め脚责91| 中文字幕五月欧美| 日韩一级高清毛片| 成人国产精品免费观看视频| 亚洲福利一二三区| 国产精品午夜春色av| 在线不卡免费欧美| av一区二区不卡| 国产乱码一区二区三区| 亚洲一二三专区| 中文字幕在线不卡| 精品少妇一区二区三区日产乱码| 99久久精品国产一区二区三区| 久久99国内精品| 无码av免费一区二区三区试看| 亚洲欧洲精品一区二区三区不卡| 91麻豆精品国产综合久久久久久| 成人国产视频在线观看| 国产一区二区三区久久久| 亚洲成人手机在线| 一区二区三区国产豹纹内裤在线| 久久久精品日韩欧美| 日韩欧美综合一区| 欧美日韩国产在线观看| www.亚洲色图.com| 国产高清精品久久久久| 九九国产精品视频| 看国产成人h片视频| 天堂久久一区二区三区| 亚洲国产一区二区三区青草影视| 国产亚洲成aⅴ人片在线观看| 日韩午夜av电影| 91精品国产高清一区二区三区| 91福利在线观看| 色94色欧美sute亚洲线路一久| 成人午夜电影小说| av一区二区不卡| 99re热视频精品| 91麻豆精品视频| 色婷婷综合久久久久中文| 91在线观看下载| 91丨九色丨黑人外教| 色屁屁一区二区| 欧美性视频一区二区三区| 在线免费观看视频一区| 欧美亚洲综合另类| 欧美日韩一区在线| 欧美福利视频一区| 欧美一级高清大全免费观看| 91精品国产免费| 精品久久久久久综合日本欧美| 精品国产乱码久久久久久免费 | 91麻豆产精品久久久久久| 91玉足脚交白嫩脚丫在线播放| 99国产欧美久久久精品| 在线精品观看国产| 91精品国产一区二区人妖| 亚洲精品在线观| 中文字幕一区在线观看视频| 自拍偷拍国产精品| 首页国产欧美久久| 国产一区视频导航| 91年精品国产| 欧美蜜桃一区二区三区| 精品久久久久av影院| 国产精品水嫩水嫩| 亚洲一区在线电影| 精油按摩中文字幕久久| 成人精品小蝌蚪| 欧美少妇一区二区| 欧美tickling网站挠脚心| 欧美国产日韩亚洲一区| 亚洲国产精品麻豆| 激情五月婷婷综合网| 99久久精品情趣| 欧美一区二区三区播放老司机| 久久精品一二三| 亚洲福利电影网| 国产一区二区三区免费播放| 色乱码一区二区三区88| 亚洲精品在线一区二区| 一区二区三区高清在线| 精品一区二区免费| 91国模大尺度私拍在线视频| 久久人人爽人人爽| 性欧美大战久久久久久久久| 成人综合婷婷国产精品久久| 欧美自拍丝袜亚洲| 亚洲国产精品成人综合色在线婷婷| 亚洲成人激情综合网| 成a人片国产精品|