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

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

?? messageheader.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.header;import de.javawi.jstun.attribute.*;import de.javawi.jstun.util.*;import java.util.*;import java.util.logging.*;public class MessageHeader implements MessageHeaderInterface {	/*	 *  0                   1                   2                   3     *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     * |      STUN Message Type        |         Message Length        |     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     * |     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     *     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     *                          Transaction ID     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     *                                                                 |     * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 */	private static Logger logger = Logger.getLogger("de.javawi.stun.header.MessageHeader");	MessageHeaderType type;	byte[] id = new byte[16];		TreeMap<MessageAttribute.MessageAttributeType, MessageAttribute> ma = new TreeMap<MessageAttribute.MessageAttributeType, MessageAttribute>();		public MessageHeader() {		super();	}		public MessageHeader(MessageHeaderType type) {		super();		setType(type);	}		    public void setType(MessageHeaderType type) {		this.type = type;    }		public static int typeToInteger(MessageHeaderType type) {		if (type == MessageHeaderType.BindingRequest) return BINDINGREQUEST;		if (type == MessageHeaderType.BindingResponse) return BINDINGRESPONSE;		if (type == MessageHeaderType.BindingErrorResponse) return BINDINGERRORRESPONSE;		if (type == MessageHeaderType.SharedSecretRequest) return SHAREDSECRETREQUEST;		if (type == MessageHeaderType.SharedSecretResponse) return SHAREDSECRETRESPONSE;		if (type == MessageHeaderType.SharedSecretErrorResponse) return SHAREDSECRETERRORRESPONSE;		return -1;	}		public void setTransactionID(byte[] id) {		System.arraycopy(id, 0, this.id, 0, 4);	}		public void generateTransactionID() throws UtilityException {		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 0, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 2, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 4, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 6, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 8, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 10, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 12, 2);		System.arraycopy(Utility.IntegerToTwoBytes((int)(Math.random() * 65536)), 0, id, 14, 2);	}		public byte[] getTransactionID() {		return id;	}		public boolean equalTransactionID(MessageHeader header) {		byte[] idHeader = header.getTransactionID();		if (idHeader.length != 16) return false;		if ((idHeader[0] == id[0]) && (idHeader[1] == id[1]) && (idHeader[2] == id[2]) && (idHeader[3] == id[3]) && 			(idHeader[4] == id[4]) && (idHeader[5] == id[5]) && (idHeader[6] == id[6]) && (idHeader[7] == id[7]) && 			(idHeader[8] == id[8]) && (idHeader[9] == id[9]) && (idHeader[10] == id[10]) && (idHeader[11] == id[11]) &&			(idHeader[12] == id[12]) && (idHeader[13] == id[13]) && (idHeader[14] == id[14]) && (idHeader[15] == id[15])) {			return true;		} else {			return false;		}	}		public void addMessageAttribute(MessageAttribute attri) {		ma.put(attri.getType(), attri);	}		public MessageAttribute getMessageAttribute(MessageAttribute.MessageAttributeType type) {		return ma.get(type);	}		public byte[] getBytes() throws UtilityException {		int length = 20;		Iterator<MessageAttribute.MessageAttributeType> it = ma.keySet().iterator();		while (it.hasNext()) {			MessageAttribute attri = ma.get(it.next());			length += attri.getLength();		}		// add attribute size + attributes.getSize();		byte[] result = new byte[length];		System.arraycopy(Utility.IntegerToTwoBytes(typeToInteger(type)), 0, result, 0, 2);		System.arraycopy(Utility.IntegerToTwoBytes(length-20), 0, result, 2, 2);		System.arraycopy(id, 0, result, 4, 16);				// arraycopy of attributes		int offset = 20;		it = ma.keySet().iterator();		while (it.hasNext()) {			MessageAttribute attri = ma.get(it.next());			System.arraycopy(attri.getBytes(), 0, result, offset, attri.getLength());			offset += attri.getLength();		}		return result;	}		public int getLength() throws UtilityException {		return getBytes().length;	}		public static MessageHeader parseHeader(byte[] data) throws MessageHeaderParsingException, MessageAttributeParsingException {		try {			MessageHeader mh = new MessageHeader();			byte[] typeArray = new byte[2];			System.arraycopy(data, 0, typeArray, 0, 2);			int type = Utility.TwoBytesToInteger(typeArray);			switch (type) {			case BINDINGREQUEST: mh.setType(MessageHeaderType.BindingRequest); logger.finer("Binding Request received."); break;			case BINDINGRESPONSE: mh.setType(MessageHeaderType.BindingResponse); logger.finer("Binding Response received."); break;			case BINDINGERRORRESPONSE: mh.setType(MessageHeaderType.BindingErrorResponse); logger.finer("Binding Error Response received."); break;			case SHAREDSECRETREQUEST: mh.setType(MessageHeaderType.SharedSecretRequest); logger.finer("Shared Secret Request received."); break;			case SHAREDSECRETRESPONSE: mh.setType(MessageHeaderType.SharedSecretResponse); logger.finer("Shared Secret Response received."); break;			case SHAREDSECRETERRORRESPONSE: mh.setType(MessageHeaderType.SharedSecretErrorResponse); logger.finer("Shared Secret Error Response received.");break;			default: throw new MessageHeaderParsingException("Message type " + type + "is not supported"); 			} 			byte[] lengthArray = new byte[2];			System.arraycopy(data, 2, lengthArray, 0, 2);			int length = Utility.TwoBytesToInteger(lengthArray);			System.arraycopy(data, 4, mh.id, 0, 16);			byte[] cuttedData;			int offset = 20;			while (length > 0) {				cuttedData = new byte[length];				System.arraycopy(data, offset, cuttedData, 0, length);				MessageAttribute ma = MessageAttribute.parseCommonHeader(cuttedData);				if (ma.getType() != MessageAttribute.MessageAttributeType.Dummy) { 					mh.addMessageAttribute(ma);				}				length -= ma.getLength();				offset += ma.getLength();			}			return mh;		} catch (UtilityException ue) {			throw new MessageHeaderParsingException("Parsing error");		}	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美videossexotv100| 午夜伦欧美伦电影理论片| 亚洲成在线观看| 成人性视频免费网站| 日韩一区二区影院| 亚洲五月六月丁香激情| 成人福利在线看| 国产欧美日韩另类一区| 久久99国产精品免费| 日本丰满少妇一区二区三区| 国产日韩成人精品| 久久国产精品区| 91麻豆精品国产91久久久资源速度 | 91精品国产色综合久久ai换脸| 国产精品成人一区二区艾草| 国产综合色视频| 日韩一卡二卡三卡国产欧美| 亚洲国产视频一区二区| 97精品电影院| 欧美国产一区二区| 高清国产午夜精品久久久久久| 日韩三级电影网址| 三级一区在线视频先锋| 91看片淫黄大片一级在线观看| 国产精品午夜在线| av在线不卡电影| 中文字幕在线一区| 成a人片亚洲日本久久| 国产精品成人免费 | 午夜精品免费在线观看| 欧美制服丝袜第一页| 一区二区三区美女| 日本精品视频一区二区三区| 亚洲综合在线免费观看| 欧美亚洲国产一区二区三区va| 亚洲精品国产精华液| 91久久久免费一区二区| 一区二区三区四区蜜桃| 欧美日韩精品欧美日韩精品一综合| 亚洲最大成人网4388xx| 欧美日韩精品福利| 国产精品国产三级国产有无不卡 | 中日韩免费视频中文字幕| 国产一区二区三区观看| 久久久午夜精品理论片中文字幕| 国产福利不卡视频| 自拍偷拍亚洲欧美日韩| 色94色欧美sute亚洲13| 亚洲第一福利一区| 精品噜噜噜噜久久久久久久久试看| 精品综合久久久久久8888| 久久综合久色欧美综合狠狠| 丁香天五香天堂综合| 亚洲女爱视频在线| 69精品人人人人| 国产电影精品久久禁18| 一区二区三区精品视频在线| 日韩欧美区一区二| bt7086福利一区国产| 午夜欧美在线一二页| 精品国产乱码久久久久久影片| 粉嫩高潮美女一区二区三区 | 日本一区二区三区四区| 色94色欧美sute亚洲13| 精品一区二区免费视频| 综合电影一区二区三区| 日韩美女天天操| 91免费看片在线观看| 久久爱www久久做| 亚洲免费视频中文字幕| 欧美一区二区视频在线观看2020| 成人毛片视频在线观看| 午夜精品久久久久影视| 国产欧美精品一区二区三区四区 | 91在线一区二区| 奇米影视在线99精品| 亚洲图片你懂的| 日韩欧美国产午夜精品| 色婷婷国产精品综合在线观看| 秋霞电影一区二区| 综合久久久久综合| 国产亚洲污的网站| 91精品麻豆日日躁夜夜躁| 91丝袜美女网| 国产99久久久精品| 精品一二三四区| 亚洲第一二三四区| 亚洲精品中文在线观看| 国产三级欧美三级日产三级99 | 在线免费一区三区| 国产成a人亚洲| 美女视频一区二区| 亚洲mv大片欧洲mv大片精品| 成人欧美一区二区三区小说| 欧美精品一区二区三区视频| 91精品在线免费| 在线观看免费视频综合| 99免费精品在线观看| 国产精品99久久久| 久久不见久久见免费视频1| 奇米四色…亚洲| 午夜视频一区二区| 亚洲国产欧美在线| 亚洲国产一区二区视频| 伊人婷婷欧美激情| 一区二区三区中文字幕电影| 亚洲图片你懂的| ...av二区三区久久精品| 久久久久综合网| 久久久精品tv| 国产日韩欧美精品综合| 久久久亚洲午夜电影| 欧美精品一区二区在线播放| 久久女同精品一区二区| 国产日韩视频一区二区三区| 国产日韩欧美一区二区三区乱码| 国产欧美日韩不卡免费| 国产精品免费网站在线观看| 国产精品久久久久久久第一福利 | 国产清纯白嫩初高生在线观看91 | 亚洲免费色视频| 亚洲激情网站免费观看| 亚洲午夜久久久| 视频一区二区三区在线| 日本美女一区二区| 久久精品72免费观看| 国产一区二区导航在线播放| 国产精品一级二级三级| 成人精品国产免费网站| 日本韩国视频一区二区| 欧美日韩1区2区| xvideos.蜜桃一区二区| 亚洲国产精品传媒在线观看| 中文字幕一区二区三区在线播放| 亚洲欧美日韩国产综合在线| 婷婷丁香久久五月婷婷| 久草在线在线精品观看| 99免费精品视频| 在线不卡欧美精品一区二区三区| 日韩欧美一级片| 中文字幕亚洲欧美在线不卡| 亚洲成人自拍网| 黄色精品一二区| 91香蕉视频污在线| 6080日韩午夜伦伦午夜伦| 2023国产一二三区日本精品2022| 综合自拍亚洲综合图不卡区| 丝袜美腿亚洲一区二区图片| 国产成人精品免费在线| 欧美色爱综合网| 久久精品一区四区| 午夜视黄欧洲亚洲| 成人自拍视频在线| 91麻豆精品国产91| 国产精品久久久久7777按摩| 午夜精品国产更新| 成人的网站免费观看| 日韩午夜精品视频| 亚洲欧美精品午睡沙发| 久久99久久99小草精品免视看| 色综合久久九月婷婷色综合| 欧美v国产在线一区二区三区| 一区二区在线免费| 国产99久久久精品| 欧美电视剧在线观看完整版| 伊人开心综合网| 成人免费毛片app| 日韩欧美视频一区| 婷婷一区二区三区| 色狠狠一区二区| 国产精品久久影院| 国产精选一区二区三区| 欧美精品1区2区3区| 伊人婷婷欧美激情| 99久久99久久精品免费观看| 精品福利av导航| 日韩不卡一区二区| 欧美午夜电影网| 中文字幕亚洲区| 从欧美一区二区三区| 日韩视频永久免费| 视频精品一区二区| 欧日韩精品视频| 亚洲欧美另类综合偷拍| 99视频在线精品| 国产精品人妖ts系列视频| 国产一区二区三区四区五区入口| 日韩午夜精品视频| 人妖欧美一区二区| 91精品国产综合久久福利软件| 亚洲一卡二卡三卡四卡五卡| 91碰在线视频| 国产精品嫩草影院av蜜臀| 成人av电影在线观看| 国产精品污www在线观看| 国产成人精品亚洲777人妖| 国产日产欧美一区二区三区| 成人免费看片app下载| 国产精品久久久久一区二区三区共 | 色综合一个色综合|