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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? agentcrbtnetconnecthandler.java

?? 同步接收web services請求
?? JAVA
字號:
/** 
 * AgentCrbtNetConnectHandler.java
 * @版權(quán): Copyright (C) 2007
 * @公司:北京漢銘信通科技有限公司
 * @url: www.aceway.com.cn
 */
package com.aceway.vas.xjcrgw.ws.handler;

import com.aceway.vas.commons.tcp.TcpClient;
import com.aceway.vas.commons.tcp.Util;
import com.aceway.vas.commons.util.logger.AcewayLogger;
import com.aceway.vas.sjcraw.cbgp201.Msg;
import com.aceway.vas.sjcraw.cbgp201.MsgBindRc;
import com.aceway.vas.sjcraw.cbgp201.MsgBindRcRsp;
import com.aceway.vas.sjcraw.cbgp201.MsgBindSr;
import com.aceway.vas.sjcraw.cbgp201.MsgBindSrRsp;
import com.aceway.vas.sjcraw.cbgp201.MsgEnquireLink;
import com.aceway.vas.sjcraw.cbgp201.MsgHead;
import com.aceway.vas.sjcraw.cbgp201.common.ConfigFileOper;
import com.aceway.vas.sjcraw.cbgp201.common.Md5Check;
import com.aceway.vas.sjcraw.cbgp201.common.MsgInfo;

/**
 * 此類是 CRBT_AGENT 模塊處理與華為彩鈴平臺通訊相關(guān)的網(wǎng)絡(luò)連接類 模塊CBGP請求/應(yīng)答的通訊模型,此類定時(shí)負(fù)責(zé)發(fā)送鏈路檢測包以維護(hù)網(wǎng)絡(luò)的正常連接
 * CBGP協(xié)議采用請求/應(yīng)答的通訊模型實(shí)現(xiàn)。通信雙方以客戶-服務(wù)器方式建立TCP連接,用于雙方信息的相互提交。當(dāng)信道上沒有數(shù)據(jù)傳輸時(shí),通信雙方應(yīng)每隔時(shí)間C發(fā)送鏈路檢測包以維持此連接,當(dāng)鏈路檢測包發(fā)出超過時(shí)間T后未收到響應(yīng),應(yīng)立即再發(fā)送鏈路檢測包,再連續(xù)發(fā)送N-1次后仍未得到響應(yīng)則斷開此連接。
 * 參數(shù)C、T、N原則上應(yīng)可配置,現(xiàn)階段建議取值為:C=3分鐘,T=60秒,N=3。
 * 通信雙方之間的消息如果不能成功發(fā)送,應(yīng)隔時(shí)間R進(jìn)行重發(fā),再連續(xù)發(fā)送N-1次后仍未發(fā)送成功則停發(fā)。現(xiàn)階段建議取值為:R=60秒,N=3。
 * 通信雙方采用一問一答的通訊機(jī)制,即一次請求對應(yīng)于一次應(yīng)答。
 * 通信雙方之間的消息發(fā)送后等待T秒后未收到響應(yīng),應(yīng)立即重發(fā),再連續(xù)發(fā)送N-1次后仍未得到響應(yīng)則停發(fā)。現(xiàn)階段建議取值為:T=60秒,N=3。
 * 消息采用并發(fā)方式發(fā)送,加以滑動(dòng)窗口流量控制,窗口大小參數(shù)W可配置,現(xiàn)階段建議為16,即接收方在應(yīng)答前一次收到的消息最多不超過16條。
 * 
 * @see MsgReceiveAdapter.java
 * @author zhou tao
 */
public class AgentCrbtNetConnectHandler extends MsgReceiveAdapter {

	/**
	 * 唯一實(shí)例
	 */
	private static AgentCrbtNetConnectHandler netConnHandler = new AgentCrbtNetConnectHandler();

	private AcewayLogger acewayLogger = (AcewayLogger) AcewayLogger
			.getLogger("CrbtAgentLogger");

	/**
	 * 通信鏈路檢測內(nèi)部類對象
	 */
	private EnquireLinkThread enquireLinkThread;

	/**
	 * 連接允許標(biāo)志
	 */
	private static boolean isConnRun;

	/**
	 * TCP客戶端實(shí)例
	 */
	private TcpClient tcpClient = Util.getClient();

	/**
	 * seqno獲取
	 */
	private AgentCrbtWSHandler agentCrbtWSHander = AgentCrbtWSHandler
			.getInstance();

	/**
	 * 
	 */
	private AgentCrbtNetConnectHandler() {
		enquireLinkThread = new EnquireLinkThread();
	}

	public static AgentCrbtNetConnectHandler getInstance() {
		return netConnHandler;
	}

	/**
	 * 接收連接已建立消息,再與華為彩鈴平臺建立連接后,發(fā)送綁定認(rèn)證消息
	 * 綁定操作是通信的雙方在建立連接后,其中一方向?qū)Ψ桨l(fā)起的認(rèn)證過程。通過認(rèn)證,認(rèn)證方可以確信對方的身份并給予相應(yīng)的權(quán)利
	 * 
	 * @param ip
	 * @param port
	 */
	public void receiveonConnectedMsg(String ip, int port) {
		acewayLogger.info("連接已建立");
		isConnRun = true; // 已建立連接

		acewayLogger.info("開始綁定認(rèn)證過程,第一步:發(fā)送CRBT_bind_rc請求!");

		String seqNo = agentCrbtWSHander.genSeqNo() + "";
		String linkId = agentCrbtWSHander.genLinkId() + "";
		int authMethod = 0x01;// 綁定采用的認(rèn)證方法MD5
		int version = 0x02;// CRBT協(xié)議的版本號
		Msg msgBindRc = new MsgBindRc(seqNo, linkId, authMethod, version);

		int result = tcpClient.send(msgBindRc.getMsg());
		if (result != 0) {
			acewayLogger.error("第一步認(rèn)證請求CRBT_bind_rc發(fā)送失敗,即斷開連接!");
			tcpClient.disconnect();
		}
	}

	/**
	 * 接收連接已斷開消息
	 */
	public void receiveonDisConnectedMsg() {
		acewayLogger.info("連接已斷開");
		isConnRun = false;
	}

	/**
	 * 接收網(wǎng)絡(luò)連接請求消息
	 */
	public void receiveNetConnReqMsg(byte[] msg) {
		MsgHead msghead = new MsgHead(msg);
		int opCode = msghead.getOpcode();
		if (opCode == 0x0202) {// 查詢連接請求
			// 回送查詢連接響應(yīng)
			msghead.setSubCommand(MsgInfo.SUB_COMMAND_RESPONSE);
			tcpClient.send(msghead.getHeadBuffer().array());
		} else if (opCode == 0x0401) {// 解除綁定請求
			// 回送取消綁定響應(yīng)
			msghead.setSubCommand(MsgInfo.SUB_COMMAND_RESPONSE);
			tcpClient.send(msghead.getHeadBuffer().array());
			tcpClient.disconnect();
		}
	}

	/**
	 * 接收網(wǎng)絡(luò)連接請求應(yīng)答消息
	 */
	public void receiveNetConnRespMsg(byte[] msg) {
		MsgHead msghead = new MsgHead(msg);
		int opCode = msghead.getOpcode();
		if (opCode == 0x0201) {// 通用錯(cuò)誤請求應(yīng)答
			String commandStatus = msghead.getCommandStatus();
			acewayLogger.error("通用錯(cuò)誤請求應(yīng)答,請檢查消息格式!commandStatus == "
					+ commandStatus);
		} else if (opCode == 0x0101) {// 綁定-隨機(jī)數(shù)CRBT_bind_rc_rsp應(yīng)答
			acewayLogger.info("綁定認(rèn)證過程,第二步:接收CRBT_bind_rc_rsp響應(yīng)!");
			MsgBindRcRsp msgBindRcResp = new MsgBindRcRsp(msg);
			String commandStatus = msgBindRcResp.getMsgHead()
					.getCommandStatus();
			if (commandStatus.equals("0000")) {
				
				acewayLogger.info("綁定認(rèn)證過程,第三步:發(fā)送CRBT_bind_sr請求!");				
				// MD5對隨機(jī)數(shù)加密
				Md5Check md5t = new Md5Check();
				String response = md5t.MD5(ConfigFileOper.getProperty("COM_PASSWORD") + msgBindRcResp.getRandom());
				String seqNo = agentCrbtWSHander.genSeqNo() + "";
				String linkId = agentCrbtWSHander.genLinkId() + "";
				MsgBindSr msgBindSr = new MsgBindSr(seqNo, linkId, "client_id", response.length(), response);

				int result = tcpClient.send(msgBindSr.getMsg());
				if (result != 0) {
					acewayLogger.error("第三步認(rèn)證請求CRBT_bind_sr發(fā)送失敗,即斷開連接!");
					tcpClient.disconnect();
				}
			} else {
				acewayLogger.info("綁定認(rèn)證過程,第二步:接收CRBT_bind_rc_rsp響應(yīng)失敗,即斷開連接!"
						+ "失敗原因:" + ConfigFileOper.getProperty(commandStatus));
				tcpClient.disconnect();

			}

		} else if (opCode == 0x0401) {// 取消綁定操作應(yīng)答
			acewayLogger.info("接受到取消綁定應(yīng)答CRBT_unbind_rsp!");
			tcpClient.disconnect();
		} else if (opCode == 0x0103) {// 綁定-隨機(jī)數(shù)CRBT_bind_sr_rsp應(yīng)答
			acewayLogger.info("綁定認(rèn)證過程,第四步:接收CRBT_bind_sr_rsp響應(yīng)!");
			MsgBindSrRsp msgBindRcResp = new MsgBindSrRsp(msg);
			String commandStatus = msgBindRcResp.getMsgHead()
					.getCommandStatus();
			if (commandStatus.equals("0000")) {
				acewayLogger.info("綁定認(rèn)證過程成功,準(zhǔn)備發(fā)送業(yè)務(wù)請求,開始通信鏈路檢測");
				enquireLinkThread.start();
			} else {
				acewayLogger.info("綁定認(rèn)證過程,第四步:接收CRBT_bind_sr_rsp響應(yīng)失敗,即斷開連接!"
						+ "失敗原因:" + ConfigFileOper.getProperty(commandStatus));
				tcpClient.disconnect();
			}
		}
	}

	/**
	 * 接收消息已發(fā)送消息
	 * 
	 * @param msg
	 */
	public void receiveOnSendMsg(byte[] msg) {

	}

	/**
	 * 鏈路檢測線程,定時(shí)檢測信道上得數(shù)據(jù)傳輸 EnquireLinkThread.java
	 * 
	 */
	class EnquireLinkThread extends Thread {

		public void run() {
			while (isConnRun) {
				long currentTime = System.currentTimeMillis();
				// 三分鐘沒有數(shù)據(jù)數(shù)據(jù)傳輸了
				if ((currentTime - AgentCrbtClientHandler
						.getLastDataTransTime()) >= MsgInfo.checkInterval * 60 * 1000) {

					for (int i = 0; i < MsgInfo.checkDegree; i++) {
						sendLinkSendMsg();
						long temp = AgentCrbtClientHandler
								.getLastDataTransTime();
						try {
							super.sleep(MsgInfo.checkWait * 60 * 1000);
						} catch (Exception e) {
							e.printStackTrace();
						}
						// 一分鐘后沒有收到響應(yīng),重發(fā)
						if (temp == AgentCrbtClientHandler
								.getLastDataTransTime()) {
							if (i == MsgInfo.checkDegree - 1) {// 最后一次發(fā)送后還是沒有收到任何響應(yīng),斷開與服務(wù)器連接
								boolean isDisConnSuccess = tcpClient.disconnect();
								if (!isDisConnSuccess) {
								} else {
									isConnRun = false;
								}
							} else {
								continue;
							}
						} else {
							break;
						}
					}

				}
			}
		}

		public void sendLinkSendMsg() {
			String seqNo = agentCrbtWSHander.genSeqNo() + "";
			String linkId = agentCrbtWSHander.genLinkId() + "";
			Msg msgEnquireLink = new MsgEnquireLink(seqNo, linkId);
			// 發(fā)送鏈路檢測包
			tcpClient.send(msgEnquireLink.getMsg());

		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级韩国三级日本三斤| www.亚洲色图.com| 欧美日韩国产精品自在自线| 一区二区三区免费观看| 欧美精品久久99久久在免费线| 亚洲一区中文在线| 欧美一区午夜视频在线观看| 蜜桃一区二区三区在线观看| 久久午夜羞羞影院免费观看| 9色porny自拍视频一区二区| 亚洲婷婷在线视频| 欧美精品亚洲一区二区在线播放| 久久99久久99精品免视看婷婷 | 亚洲午夜日本在线观看| 欧美日韩亚洲综合在线 | 欧美成人国产一区二区| 国产一区二区三区在线观看精品 | 秋霞电影网一区二区| 精品美女在线观看| www.色精品| 亚洲成人综合视频| 欧美精品一区二区蜜臀亚洲| 99久久精品国产毛片| 天堂午夜影视日韩欧美一区二区| www激情久久| 欧美三日本三级三级在线播放| 韩国成人在线视频| 亚洲国产精品久久久久秋霞影院| 欧美成人猛片aaaaaaa| 99riav久久精品riav| 麻豆免费看一区二区三区| 国产精品久久久久影院亚瑟| 欧美高清激情brazzers| 99久久综合精品| 男人操女人的视频在线观看欧美 | 色综合久久久久综合| 日本欧美一区二区三区乱码| 国产精品久久久久三级| 欧美一区二区网站| 一本色道久久综合亚洲精品按摩| 久久机这里只有精品| 亚洲v精品v日韩v欧美v专区| 国产精品三级电影| 精品久久国产97色综合| 欧美亚男人的天堂| 99久久99久久免费精品蜜臀| 国产一区二区三区| 日韩二区三区在线观看| 日韩码欧中文字| 欧美激情综合网| www日韩大片| 日韩精品专区在线影院重磅| 欧美性感一区二区三区| 91丨porny丨国产入口| 久久91精品国产91久久小草| 一区二区三区中文字幕电影| 国产拍揄自揄精品视频麻豆| 日韩欧美中文字幕精品| 欧美日韩日日夜夜| 91精品福利视频| 99久久免费精品| 成人黄色a**站在线观看| 国产精品一级黄| 秋霞影院一区二区| 丝袜美腿亚洲一区二区图片| 一级日本不卡的影视| 中文字幕欧美一| 中文字幕一区视频| 自拍偷自拍亚洲精品播放| 久久精品亚洲国产奇米99 | 国产欧美1区2区3区| 精品少妇一区二区三区视频免付费| 欧美日韩精品一区二区在线播放| 色欧美片视频在线观看在线视频| 91在线视频免费91| 色综合久久精品| 在线观看一区二区视频| 国产日韩精品一区| 久久久久久久精| 欧美激情艳妇裸体舞| 久久午夜老司机| 国产精品人成在线观看免费| 亚洲国产精品99久久久久久久久| 国产女人18水真多18精品一级做| 国产网红主播福利一区二区| 国产精品女上位| 亚洲欧洲制服丝袜| 亚洲第一二三四区| 男人的天堂亚洲一区| 国产美女视频一区| 国产成a人无v码亚洲福利| 成人av先锋影音| 色哟哟一区二区在线观看| 欧美日韩精品免费观看视频| 欧美一卡二卡在线| 久久久久久久综合| 亚洲欧洲中文日韩久久av乱码| 亚洲国产欧美日韩另类综合 | 国产精品无圣光一区二区| 国产精品久久99| 亚洲一区二区av在线| 日本不卡在线视频| 国产精品影视网| 色婷婷综合五月| 日韩欧美中文字幕一区| 国产精品免费视频观看| 亚洲制服丝袜av| 国产在线看一区| 91美女精品福利| 欧美一区二区三区不卡| 韩国在线一区二区| av一本久道久久综合久久鬼色| 欧美日本一区二区| 国产欧美综合在线观看第十页| 亚洲综合视频在线观看| 国产一区999| 一本一道久久a久久精品| 欧美电影免费观看高清完整版在线观看| 国产精品美女一区二区三区 | 久久国产精品99精品国产| 国产成人aaa| 欧美乱熟臀69xxxxxx| 国产女同性恋一区二区| 日韩不卡一二三区| 成人黄色在线网站| 欧美成va人片在线观看| 亚洲精品日韩一| 国产综合色在线| 欧美人与禽zozo性伦| 亚洲欧洲成人自拍| 韩国三级在线一区| 欧美日韩成人高清| 亚洲同性gay激情无套| 黑人精品欧美一区二区蜜桃 | 国产精品久久久久aaaa樱花| 蜜桃视频在线观看一区| 欧美亚洲一区三区| 国产精品情趣视频| 精品一区二区免费看| 一本色道久久综合亚洲aⅴ蜜桃 | 911精品产国品一二三产区| 国产精品三级av在线播放| 极品少妇xxxx精品少妇| 欧美浪妇xxxx高跟鞋交| 日韩美女视频19| 国产精品白丝jk白祙喷水网站| 欧美一二三四区在线| 亚洲成人免费视频| 91免费视频观看| 国产精品午夜免费| 国产精品18久久久久久vr| 精品国产乱码久久久久久1区2区 | 91.com视频| 一区二区在线观看免费| 91丨九色丨蝌蚪富婆spa| 国产精品婷婷午夜在线观看| 国产一区二区女| 精品国产成人系列| 激情六月婷婷综合| 日韩一区二区免费视频| 日本大胆欧美人术艺术动态| 欧美影片第一页| 亚洲成人免费电影| 欧美高清视频一二三区 | 日韩欧美精品在线| 日本不卡视频在线| 91精品国产全国免费观看| 午夜欧美在线一二页| 色婷婷综合激情| 一区二区三区欧美视频| 欧美影院午夜播放| 亚洲成人资源在线| 欧美电影影音先锋| 青青青伊人色综合久久| 欧美成va人片在线观看| 国产一区二区毛片| 中文字幕精品一区二区三区精品 | 精一区二区三区| 久久精品人人爽人人爽| 粉嫩久久99精品久久久久久夜| 国产精品视频yy9299一区| 国产91精品一区二区| 中文字幕制服丝袜成人av| av在线不卡免费看| 亚洲精品大片www| 日韩一二三四区| 国产福利电影一区二区三区| 国产精品对白交换视频| 色琪琪一区二区三区亚洲区| 日韩中文字幕麻豆| 久久综合999| 91一区二区在线| 亚洲一区二区三区四区的| 91精品国产综合久久精品性色| 久久99九九99精品| 国产精品美女久久久久aⅴ| 欧美日韩中文另类| 国产综合一区二区| 一区二区三区在线高清| 日韩精品一区二区在线|