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

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

?? testb2.java

?? Java下Comet的實現(xiàn)框架Pushlet例子。 實現(xiàn)實時推送數(shù)據(jù)到客戶端。 服務(wù)器每隔30-500MS產(chǎn)生一個隨機數(shù)
?? JAVA
字號:
package hfut.wispy.Client;


import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import nl.justobjects.pushlet.client.PushletClient;
import nl.justobjects.pushlet.client.PushletClientListener;
import nl.justobjects.pushlet.core.Event;
import nl.justobjects.pushlet.core.Protocol;
import nl.justobjects.pushlet.util.PushletException;

public class TestB2 implements PushletClientListener, Protocol{
	private static String SUBJECT = "/";

	private static final String MODE = MODE_STREAM;
	
	private Integer firstRate = 0;
	private Integer lastRate = 0;
	private boolean first = true;
	
	public static long maxWaitTime = 0;
	public static long minWaitTime = 5000;
	public static int maxWaitNo = 0;
	public static int minWaitNo = 0;
	
	public static int zeroUnkind = 0;
	public static int b0toN200 = 0;
	public static int bN200toN400 = 0;
	public static int bN400toN600 = 0;
	public static int bN600toN800 = 0;
	public static int bN800toN1000 = 0;
	public static int bN1000toN1200 = 0;
	public static int bN1200toN1400 = 0;
	public static int bN1400toN1600 = 0;
	public static int bN1600toN1800 = 0;
	public static int bN1800toN2000 = 0;
	public static int b0to200 = 0;
	public static int b200to400 = 0;
	public static int b400to600 = 0;
	public static int b600to800 = 0;
	public static int b800to1000 = 0;
	public static int b1000to1200 = 0;
	public static int b1200to1400 = 0;
	public static int b1400to1600 = 0;
	public static int b1600to1800 = 0;
	public static int b1800to2000 = 0;
	public static int b2000to2400 = 0;
	public static int b2400to2800 = 0;
	public static int b2800to3200 = 0;
	public static int unkind = 0;
	private static Map<Integer, Long> unkindMap = new HashMap<Integer, Long>();
	public static int showSummeryTimes = 0;
	
	public static long	totalWaitTime = 0;
	public static long totalRunTimes = 0;

	public TestB2(String aHost, int aPort) {
		// Create and start a Pushlet client; we receive callbacks
		// through onHeartbeat() and onData().
		try {
			PushletClient pushletClient = new PushletClient(aHost, aPort);
			pushletClient.setDebug(true);
			pushletClient.join();
			pushletClient.listen(this, MODE, SUBJECT);
			// pushletClient.joinListen(this, MODE, SUBJECT);
			System.out.println("here pushletClient started");
			p("pushletClient started MyTest");
		} catch (PushletException pe) {
			p("Error in setting up pushlet session pe=" + pe);
		}
	}

	/** Error occurred. */
	public void onError(String message) {
		p("onAbort onError: " + message);
	}

	/** Abort event from server. */
	public void onAbort(Event theEvent) {
		p("onAbort received: " + theEvent.toString());
	}

	/** Data event from server. */
	public void onData(Event theEvent) {
		// Calculate round trip delay
		
		//p("theEvent.toXML() : " + theEvent.toXML());
//		p("here is the city :" + theEvent.getField("city"));
		p("name : " + theEvent.getField("name"));
		p("rate : " + theEvent.getField("rate"));
		Integer rateInteger = new Integer(theEvent.getField("rate"));
		lastRate = rateInteger;
		if(first)
		{
			firstRate = rateInteger;
			first = false;
		}
		
		Date now = new Date();
		Date date = new Date(theEvent.getField("time"));
		
		//----------------------------------------------------------
		long time = now.getTime() - date.getTime();
		totalWaitTime += time;
		//條件表達式的執(zhí)行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件表達式的值;
		//若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件表達式的值
		minWaitTime = (minWaitTime < time) ? minWaitTime : time;
		maxWaitTime = (maxWaitTime < time) ? time : maxWaitTime;
		if(maxWaitTime <= time){
			maxWaitNo = new Integer(theEvent.getField("rate"));
		}
		if(minWaitTime >= time){
			minWaitNo = new Integer(theEvent.getField("rate"));
		}
		p("延時時間 : " + time + "毫秒。");
		if (time > 2000){
			p("------------------------奇了-- >2000 max ----------------------------");
			p("time : " + theEvent.getField("time"));
			p("now  : " + now.toString());
		}
		if (time <200){
			p("------------------------奇了--- <200 min ---------------------------");
			p("time : " + theEvent.getField("time"));
			p("now  : " + now.toString());
		}
		int sw = (int)time/200;
		switch (sw) {
		
		case -1:
			bN200toN400++;
			break;
		case -2:
			bN400toN600++;
			break;
		case -3:
			bN600toN800++;
			break;
		case -4:
			bN800toN1000++;
			break;
		case -5:
			bN1000toN1200++;
			break;
		case -6:
			bN1200toN1400++;
			break;
		case -7:
			bN1400toN1600++;
			break;
		case -8:
			bN1600toN1800++;
			break;
		case -9:
			bN1800toN2000++;
			break;
		case 0:
			if(time >= 0)
			b0to200++;
			else if(time < 0){
				b0toN200++;
			}
			else {
				zeroUnkind++;
			}
			break;
		case 1:
			b200to400++;
			break;
		case 2:
			b400to600++;
			break;
		case 3:
			b600to800++;
			break;
		case 4:
			b800to1000++;
			break;
		case 5:
			b1000to1200++;
			break;
		case 6:
			b1200to1400++;
			break;
		case 7:
			b1400to1600++;
			break;
		case 8:
			b1600to1800++;
			break;
		case 9:
			b1800to2000++;
			break;
		case 10:
			b2000to2400++;
			break;
		case 11:
			b2000to2400++;
			break;
		case 12:
			b2400to2800++;
			break;
		case 13:
			b2400to2800++;
			break;
		case 14:
			b2800to3200++;
			break;
		case 15:
			b2800to3200++;
			break;
		default:
			unkind++;
			unkindMap.put(rateInteger, time);
			break;
		}
//		p("here is the EPCCode :" + theEvent.getField("epc"));
//		p("p_event :" + theEvent.getField("p_event"));
//		p("p_time : " + theEvent.getField("p_time"));
//		p("p_from : " + theEvent.getField("p_from"));
//		p("p_mode : " + theEvent.getField("p_mode"));
		showSummery();
	}

	
	private void showSummery() {
		System.out.println();
		//每10次輸出一下統(tǒng)計信息
		totalRunTimes++;
		if(totalRunTimes % 30 == 0){
			showSummeryTimes++;
			p(" ");
			p("--------------哇咔咔 統(tǒng)計信息開始----------- ");
			p("這是第" + showSummeryTimes + "次輸出統(tǒng)計信息。");
			p("每10次輸出一下詳細的unkind信息。");
			p("第一次開始調(diào)用的rate " + firstRate);
			p("總共獲取調(diào)用了多少次 : " + totalRunTimes + "次");
			p("下面應(yīng)該是多少 " + (int)(firstRate+totalRunTimes-1));
			p("最后一次rate   " + lastRate);
			p("");
			p("最大延時時間 : " + maxWaitTime + "毫秒");
			p("最大延遲產(chǎn)生的rate : " + maxWaitNo);
			p("最小延時時間 : " + minWaitTime + "毫秒");
			p("最小延遲產(chǎn)生的rate : " + minWaitNo);
			p("平均延時時間 : " + totalWaitTime/totalRunTimes + "毫秒");
			p(" ");
			p("-1800 -2000出現(xiàn)次數(shù) :" + bN1800toN2000);
			p("-1600 -1800出現(xiàn)次數(shù) :" + bN1600toN1800);
			p("-1400 -1600出現(xiàn)次數(shù) :" + bN1400toN1600);
			p("-1200 -1400出現(xiàn)次數(shù) :" + bN1200toN1400);
			p("-1000 -1200出現(xiàn)次數(shù) :" + bN1000toN1200);
			p("-800 -1000出現(xiàn)次數(shù) :" + bN800toN1000);
			p("-600 -800出現(xiàn)次數(shù) :" + bN600toN800);
			p("-400 -600出現(xiàn)次數(shù) :" + bN400toN600);
			p("-200 -400出現(xiàn)次數(shù) :" + bN200toN400);
			p("0 TO -200出現(xiàn)次數(shù) :" + b0toN200);
			p("0 TO 200出現(xiàn)次數(shù) :" + b0to200);
			p("200-400出現(xiàn)次數(shù) :" + b200to400);
			p("400-600出現(xiàn)次數(shù) :" + b400to600);
			p("600-800出現(xiàn)次數(shù) :" + b600to800);
			p("800-1000出現(xiàn)次數(shù) :" + b800to1000);
			p("1000-1200出現(xiàn)次數(shù) :" + b1000to1200);
			p("1200-1400出現(xiàn)次數(shù) :" + b1200to1400);
			p("1400-1600出現(xiàn)次數(shù) :" + b1400to1600);
			p("1600-1800出現(xiàn)次數(shù) :" + b1600to1800);
			p("1800-2000出現(xiàn)次數(shù) :" + b1800to2000);
			p("2000-2400出現(xiàn)次數(shù) :" + b2000to2400);
			p("2400-2800出現(xiàn)次數(shù) :" + b2400to2800);
			p("2800-3200出現(xiàn)次數(shù) :" + b2800to3200);
			p("未能統(tǒng)計的ZROE次數(shù) :" + zeroUnkind);
			p("未能統(tǒng)計的次數(shù) :" + unkind);
			p(" ");
			if(totalRunTimes % 300 == 0){
				p("開始輸出詳細的unkind信息。");
				p("rate     time");
				Set<Integer> rateSet = unkindMap.keySet();
				for (Iterator iter = rateSet.iterator(); iter.hasNext();) {
					Integer rate = (Integer) iter.next();
					Long time = unkindMap.get(rate);
					p(rate + "     " + time);
				}
			}
			p(" ");
			System.out.println();
		}
		
	}

	/** Heartbeat event from server. */
	public void onHeartbeat(Event theEvent) {
		p("onHeartbeat received: " + theEvent.toString());
	}

	/** Generic print. */
	public static void p(String s) {
		System.out.println("[MyTest] " + s);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成方法存根
		 new TestB2("192.168.21.48", 8080);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡视频一二三| 欧美一区二区黄| 欧美大胆一级视频| 最新不卡av在线| 老司机免费视频一区二区| 色婷婷综合久久久久中文| 精品国产第一区二区三区观看体验| 国产亚洲欧美日韩在线一区| 午夜精品福利视频网站| 91看片淫黄大片一级| 久久久久久97三级| 理论电影国产精品| 在线观看91精品国产麻豆| 亚洲丝袜美腿综合| 成人黄色av网站在线| 精品国产乱码久久久久久久久| 午夜电影网一区| 一本一道久久a久久精品| 日韩码欧中文字| 国产风韵犹存在线视精品| 日韩欧美电影在线| 天堂精品中文字幕在线| 欧美亚洲国产一区在线观看网站| 日韩一区欧美小说| 国内精品久久久久影院一蜜桃| 日韩一级免费一区| 免费在线看成人av| 欧美一区二区精品在线| 日本成人超碰在线观看| 欧美日韩国产成人在线免费| 亚洲精品高清在线| 在线一区二区三区做爰视频网站| 国产精品国产三级国产三级人妇| 国产传媒日韩欧美成人| 国产视频一区二区在线观看| 粉嫩在线一区二区三区视频| 国产欧美一区二区精品仙草咪 | 337p亚洲精品色噜噜| 免费看黄色91| 欧美美女喷水视频| 日韩精品乱码av一区二区| 欧美久久久久久久久| 日韩av一二三| 日韩亚洲欧美在线观看| 蜜臀va亚洲va欧美va天堂| 欧美成人精品3d动漫h| 蜜乳av一区二区三区| 精品久久人人做人人爽| 国产成人综合视频| 国产精品福利在线播放| 在线观看日韩毛片| 亚洲一区二区三区三| 欧美一区二区福利视频| 国产美女视频91| 国产精品传媒入口麻豆| 欧美亚洲一区二区在线| 日本va欧美va瓶| 欧美激情一区二区三区在线| av电影天堂一区二区在线| 亚洲一区在线视频| 精品成a人在线观看| aaa亚洲精品| 日韩av一级片| 国产精品不卡在线观看| 欧美日韩aaa| 国产suv精品一区二区883| 亚洲精品日韩综合观看成人91| 91精品免费在线观看| 国产91丝袜在线播放| 亚洲免费观看高清| 日韩欧美一区二区在线视频| 成人免费黄色大片| 男女视频一区二区| 国产精品久久二区二区| 9191久久久久久久久久久| 粉嫩高潮美女一区二区三区| 亚洲国产精品久久久男人的天堂| 精品国产免费久久 | 激情综合网最新| 中文字幕视频一区二区三区久| 欧美丰满少妇xxxxx高潮对白| 国产乱码精品一品二品| 亚洲国产一区二区视频| 欧美国产日韩精品免费观看| 欧美一区二区三区四区视频| www.欧美精品一二区| 久久精品国产精品青草| 国产在线播放一区二区三区| 玉米视频成人免费看| 中文字幕第一页久久| 欧美一级日韩一级| 日本精品免费观看高清观看| 成人综合在线观看| 激情综合色播激情啊| 亚洲线精品一区二区三区 | 久久精品一区二区| 91精品国产综合久久久蜜臀粉嫩 | 91精品欧美久久久久久动漫| 色哟哟日韩精品| 丁香婷婷综合网| 久久精品国产99国产| 午夜精品福利在线| 亚洲第一福利一区| 亚洲综合清纯丝袜自拍| 成人欧美一区二区三区| 国产欧美一区二区三区在线看蜜臀| 日韩欧美黄色影院| 91精品国产欧美一区二区18| 欧美男男青年gay1069videost| 91啪亚洲精品| 99久久久国产精品免费蜜臀| av成人免费在线观看| 99精品国产99久久久久久白柏| 丁香激情综合五月| 国产成人精品免费视频网站| 国产曰批免费观看久久久| 极品少妇一区二区| 美女高潮久久久| 六月丁香婷婷色狠狠久久| 精品亚洲porn| 精品一区二区三区视频在线观看| 蜜臂av日日欢夜夜爽一区| 久久精品国产精品亚洲精品| 国内精品自线一区二区三区视频| 国产一区二区0| 懂色av一区二区夜夜嗨| 91在线观看一区二区| 日本韩国欧美在线| 欧美精品欧美精品系列| 欧美一级免费大片| 久久综合国产精品| 国产丝袜美腿一区二区三区| 亚洲欧洲三级电影| 亚洲成人激情自拍| 日韩精品乱码av一区二区| 国产又粗又猛又爽又黄91精品| 国产99久久久久久免费看农村| 97久久人人超碰| 8x福利精品第一导航| 亚洲一区二区免费视频| 国产精品入口麻豆原神| 国产精品视频在线看| 亚洲视频一二三区| 五月婷婷久久丁香| 欧美夫妻性生活| 91精品国产高清一区二区三区蜜臀| 成人精品小蝌蚪| 色综合咪咪久久| 国产精品久久三| 国产精品亚洲一区二区三区在线| 91精品国产黑色紧身裤美女| 亚洲午夜久久久久久久久电影院 | 日本一区二区视频在线| 蜜臀av在线播放一区二区三区| 色婷婷av一区二区三区gif | 久久亚洲影视婷婷| 日韩激情视频网站| 欧美美女一区二区在线观看| 亚洲一区二区精品视频| 91黄色激情网站| 亚洲免费观看高清| 91小视频在线| 亚洲国产成人自拍| 成人中文字幕在线| 久久久久久麻豆| 国产精品一区二区在线观看网站| 337p粉嫩大胆噜噜噜噜噜91av| 蜜臀av一区二区三区| 91精品国产综合久久婷婷香蕉 | 亚洲午夜激情网站| 日本韩国一区二区三区视频| 亚洲情趣在线观看| 欧美视频精品在线观看| 亚洲夂夂婷婷色拍ww47| 欧洲精品在线观看| 亚洲国产精品欧美一二99| 欧美日韩不卡在线| 另类专区欧美蜜桃臀第一页| 久久综合久久综合九色| 国产99久久久精品| 亚洲视频精选在线| 欧美日韩在线观看一区二区 | 日韩欧美成人午夜| 久久成人精品无人区| 精品国产在天天线2019| 国产乱淫av一区二区三区| 国产午夜精品一区二区三区嫩草 | 国产一区欧美日韩| 日本一区二区久久| 日本高清不卡一区| 日本欧洲一区二区| 久久久久久久精| 在线免费视频一区二区| 天天综合日日夜夜精品| 精品久久久久久久人人人人传媒 | 欧美精品v日韩精品v韩国精品v| 免费成人在线网站| 国产精品乱人伦| 欧美视频在线一区二区三区 | 91麻豆成人久久精品二区三区|