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

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

?? bindinglifetimetest.java

?? 檢測nat類型的jstun的程序,雙擊即可.然后可在log.txt讀取信息.
?? JAVA
字號:
/* * This file is part of JSTUN.  *  * Copyright (c) 2005 Thomas King <king@t-king.de> - All rights * reserved. *  * This software is licensed under either the GNU Public License (GPL), * or the Apache 2.0 license. Copies of both license agreements are * included in this distribution. */package de.javawi.jstun.test;import java.util.logging.*;import java.util.*;import java.io.*;import java.net.*;import de.javawi.jstun.attribute.*;import de.javawi.jstun.header.*;import de.javawi.jstun.util.UtilityException;public class BindingLifetimeTest {	private static Logger logger = Logger.getLogger("de.javawi.stun.test.BindingLifetimeTest");	String stunServer;	int port;	int timeout = 300; //ms	MappedAddress ma;	Timer timer;	DatagramSocket initialSocket;		// start value for binary search - should be carefully choosen	int upperBinarySearchLifetime = 345000; // ms	int lowerBinarySearchLifetime = 0;	int binarySearchLifetime = ( upperBinarySearchLifetime + lowerBinarySearchLifetime ) / 2;		// lifetime value	int lifetime = -1; // -1 means undefined.	boolean completed = false;			public BindingLifetimeTest(String stunServer, int port) {		super();		this.stunServer = stunServer;		this.port = port;		timer = new Timer(true);	}		public void test() throws UtilityException, SocketException, UnknownHostException, IOException, MessageAttributeParsingException, MessageAttributeException, MessageHeaderParsingException {		initialSocket = new DatagramSocket();		initialSocket.connect(InetAddress.getByName(stunServer), port);		initialSocket.setSoTimeout(timeout);				if (BindingCommunicationInitialSocket()) {			return;		}		BindingLifetimeTask task = new BindingLifetimeTask();		timer.schedule(task, binarySearchLifetime);		logger.finer("Timer scheduled initially: " + binarySearchLifetime + ".");	}		private boolean BindingCommunicationInitialSocket() throws UtilityException, IOException, MessageHeaderParsingException, MessageAttributeParsingException {		MessageHeader sendMH = new MessageHeader(MessageHeader.MessageHeaderType.BindingRequest);		sendMH.generateTransactionID();		ChangeRequest changeRequest = new ChangeRequest();		sendMH.addMessageAttribute(changeRequest);		byte[] data = sendMH.getBytes();				DatagramPacket send = new DatagramPacket(data, data.length, InetAddress.getByName(stunServer), port);		initialSocket.send(send);		logger.finer("Binding Request sent.");			MessageHeader receiveMH = new MessageHeader();		while (!(receiveMH.equalTransactionID(sendMH))) {			DatagramPacket receive = new DatagramPacket(new byte[200], 200);			initialSocket.receive(receive);			receiveMH = MessageHeader.parseHeader(receive.getData());		}		ma = (MappedAddress) receiveMH.getMessageAttribute(MessageAttribute.MessageAttributeType.MappedAddress);		ErrorCode ec = (ErrorCode) receiveMH.getMessageAttribute(MessageAttribute.MessageAttributeType.ErrorCode);		if (ec != null) {			logger.config("Message header contains errorcode message attribute.");			return true;		}		if (ma == null) {			logger.config("Response does not contain a mapped address message attribute.");			return true;		}		return false;	}		public int getLifetime() {		return lifetime;	}		public boolean isCompleted() {		return completed;	}		public void setUpperBinarySearchLifetime(int upperBinarySearchLifetime) {		this.upperBinarySearchLifetime = upperBinarySearchLifetime;		binarySearchLifetime = ( upperBinarySearchLifetime + lowerBinarySearchLifetime ) / 2;	}		class BindingLifetimeTask extends TimerTask {				public BindingLifetimeTask() {			super();		}				public void run() {			try {				lifetimeQuery();			} catch (Exception e) {				logger.config("Unhandled Exception. BindLifetimeTasks stopped.");				e.printStackTrace();			}		}				public void lifetimeQuery() throws UtilityException, MessageAttributeException, MessageHeaderParsingException, MessageAttributeParsingException, IOException {			try {				DatagramSocket socket = new DatagramSocket();				socket.connect(InetAddress.getByName(stunServer), port);				socket.setSoTimeout(timeout);							MessageHeader sendMH = new MessageHeader(MessageHeader.MessageHeaderType.BindingRequest);				sendMH.generateTransactionID();				ChangeRequest changeRequest = new ChangeRequest();				ResponseAddress responseAddress = new ResponseAddress();				responseAddress.setAddress(ma.getAddress());				responseAddress.setPort(ma.getPort());				sendMH.addMessageAttribute(changeRequest);				sendMH.addMessageAttribute(responseAddress);				byte[] data = sendMH.getBytes();							DatagramPacket send = new DatagramPacket(data, data.length, InetAddress.getByName(stunServer), port);				socket.send(send);				logger.finer("Binding Request sent.");						MessageHeader receiveMH = new MessageHeader();				while (!(receiveMH.equalTransactionID(sendMH))) {					DatagramPacket receive = new DatagramPacket(new byte[200], 200);					initialSocket.receive(receive);					receiveMH = MessageHeader.parseHeader(receive.getData());				}				ErrorCode ec = (ErrorCode) receiveMH.getMessageAttribute(MessageAttribute.MessageAttributeType.ErrorCode);				if (ec != null) {					logger.config("Message header contains errorcode message attribute.");					return;				}				logger.finer("Binding Response received.");				if (upperBinarySearchLifetime == (lowerBinarySearchLifetime + 1)) {					logger.config("BindingLifetimeTest completed. UDP binding lifetime: " + binarySearchLifetime + ".");					completed = true;					return;				}				lifetime = binarySearchLifetime;				logger.finer("Lifetime update: " + lifetime + ".");				lowerBinarySearchLifetime = binarySearchLifetime;				binarySearchLifetime = ( upperBinarySearchLifetime + lowerBinarySearchLifetime ) / 2;				if (binarySearchLifetime > 0) {					BindingLifetimeTask task = new BindingLifetimeTask();					timer.schedule(task, binarySearchLifetime);					logger.finer("Timer scheduled: " + binarySearchLifetime + ".");				} else {					completed = true;				}			} catch (SocketTimeoutException ste) {				logger.finest("Read operation at query socket timeout.");				if (upperBinarySearchLifetime == (lowerBinarySearchLifetime + 1)) {					logger.config("BindingLifetimeTest completed. UDP binding lifetime: " + binarySearchLifetime + ".");					completed = true;					return;				}				upperBinarySearchLifetime = binarySearchLifetime;				binarySearchLifetime = ( upperBinarySearchLifetime + lowerBinarySearchLifetime ) / 2;				if (binarySearchLifetime > 0) {					if (BindingCommunicationInitialSocket()) {						return;					}					BindingLifetimeTask task = new BindingLifetimeTask();					timer.schedule(task, binarySearchLifetime);					logger.finer("Timer scheduled: " + binarySearchLifetime + ".");				} else {					completed = true;				}			}		}	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本乱码高清不卡字幕| 91国内精品野花午夜精品| 亚洲精品自拍动漫在线| 国产精品二三区| 国产精品日韩成人| 国产日产欧美一区| 国产欧美中文在线| 国产精品久久福利| 亚洲蜜臀av乱码久久精品 | 亚洲国产婷婷综合在线精品| 一区二区三区在线免费视频| 亚洲一区二区欧美日韩| 午夜不卡av免费| 久久国产欧美日韩精品| 国产成人综合在线观看| 成人中文字幕合集| 色欧美日韩亚洲| 欧美精品九九99久久| 日韩精品一区在线观看| 日本一区二区三区dvd视频在线| 欧美激情综合五月色丁香小说| 亚洲天堂精品在线观看| 日韩综合一区二区| 紧缚奴在线一区二区三区| 成人h精品动漫一区二区三区| 一本大道久久a久久综合| 欧美三区在线观看| www国产精品av| 伊人色综合久久天天| 免费高清视频精品| 99视频一区二区| 91福利精品第一导航| 欧美偷拍一区二区| 久久综合九色综合欧美98| 自拍偷自拍亚洲精品播放| 日本成人超碰在线观看| 成人av电影在线播放| 5月丁香婷婷综合| 中文字幕制服丝袜一区二区三区| 香港成人在线视频| 成人国产精品视频| 欧美一区二区三区婷婷月色| 亚洲欧洲日韩在线| 毛片一区二区三区| 欧美私人免费视频| 欧美国产日韩亚洲一区| 蜜芽一区二区三区| 在线观看视频一区二区| 国产精品无码永久免费888| 一个色妞综合视频在线观看| 国产经典欧美精品| 欧美一级免费大片| 亚洲影视在线播放| av成人免费在线| 久久久久久久久伊人| 日本女人一区二区三区| 色婷婷综合五月| 国产精品无人区| 国产99久久久国产精品潘金 | 亚洲欧美偷拍卡通变态| 国产一区二区三区观看| 欧美一区二区三区男人的天堂| 自拍偷拍国产亚洲| 成人激情图片网| 久久午夜色播影院免费高清| 日本va欧美va精品| 5858s免费视频成人| 亚洲午夜国产一区99re久久| 91麻豆国产福利精品| 国产亚洲一二三区| 国产美女久久久久| 欧美tk丨vk视频| 久久国产人妖系列| 欧美精品一区二区三区蜜桃视频| 午夜精品久久久久久久蜜桃app| 91精彩视频在线观看| 亚洲精品视频在线观看网站| 色偷偷一区二区三区| 有坂深雪av一区二区精品| 日本韩国欧美三级| 亚洲第一会所有码转帖| 欧美视频在线观看一区二区| 亚洲综合免费观看高清在线观看| 日本久久电影网| 天堂蜜桃91精品| 777午夜精品视频在线播放| 日韩中文字幕麻豆| www国产精品av| 粉嫩久久99精品久久久久久夜| 国产精品麻豆久久久| 日本久久精品电影| 亚洲mv大片欧洲mv大片精品| 日韩一区二区三区视频在线| 国产酒店精品激情| 国产精品美女久久久久aⅴ| 91麻豆成人久久精品二区三区| 伊人色综合久久天天| 日韩三级电影网址| a级精品国产片在线观看| 亚洲一区二区av在线| 日韩欧美精品在线视频| av网站一区二区三区| 青青草97国产精品免费观看无弹窗版 | 日韩高清不卡一区二区| 欧美mv日韩mv亚洲| 99麻豆久久久国产精品免费| 亚洲国产一区视频| 久久精品一区八戒影视| 日本久久电影网| 韩国v欧美v日本v亚洲v| 亚洲黄网站在线观看| 欧美精品一区二区三区蜜臀| 色嗨嗨av一区二区三区| 久久精品99久久久| 亚洲特黄一级片| 欧美sm美女调教| 欧美影视一区在线| 成人午夜精品一区二区三区| 亚洲电影第三页| 综合av第一页| 久久女同互慰一区二区三区| 欧美日韩另类一区| 94-欧美-setu| 国产在线不卡一区| 日日夜夜精品视频免费| 国产精品传媒视频| 久久免费午夜影院| 日韩三级伦理片妻子的秘密按摩| 91麻豆免费视频| 国产99精品国产| 久久99久久精品欧美| 五月天中文字幕一区二区| 精品伦理精品一区| 亚洲同性同志一二三专区| 91性感美女视频| 国产黄色成人av| 狠狠色丁香久久婷婷综合_中 | 51精品国自产在线| 色婷婷国产精品综合在线观看| 成人黄色软件下载| 国产一区高清在线| 久久97超碰国产精品超碰| 五月综合激情婷婷六月色窝| 亚洲欧美日韩精品久久久久| 中文一区在线播放| 久久精品夜色噜噜亚洲aⅴ| 欧美成人a∨高清免费观看| 欧美日韩国产美女| 欧美日韩卡一卡二| 欧美日韩日日夜夜| 7878成人国产在线观看| 在线播放中文字幕一区| 欧美特级限制片免费在线观看| 91福利视频网站| 欧美中文字幕亚洲一区二区va在线 | 国产福利电影一区二区三区| 国内久久精品视频| 成人性视频免费网站| 国产精品996| 成人av资源在线| 91蝌蚪porny九色| 欧美性猛片xxxx免费看久爱| 精品视频在线免费观看| 欧美美女bb生活片| 欧美一级爆毛片| 国产亚洲一区二区三区在线观看| 国产午夜精品一区二区三区嫩草| 国产三级精品三级在线专区| 久久综合九色综合欧美98| 久久婷婷国产综合精品青草| 国产日韩av一区| 一区二区三区自拍| 麻豆精品视频在线观看| 国产91精品免费| 色素色在线综合| 欧美一激情一区二区三区| 欧美国产综合一区二区| 亚洲乱码一区二区三区在线观看| 亚洲国产美女搞黄色| 久久精品国产精品亚洲精品| 国产成人精品www牛牛影视| 在线视频你懂得一区| 日韩一区二区电影在线| 国产精品卡一卡二| 日韩精品1区2区3区| 成人午夜精品在线| 91精品在线麻豆| 中文字幕av在线一区二区三区| 亚洲午夜视频在线| 国产一区二区视频在线| 在线亚洲+欧美+日本专区| 精品成人一区二区三区四区| 国产精品久久二区二区| 毛片不卡一区二区| 在线免费不卡视频| 久久久精品影视| 蜜桃传媒麻豆第一区在线观看| 成年人国产精品| 欧美精品一区二区精品网| 亚洲一区二区三区三|