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

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

?? serverclientdetection.java.svn-base

?? Java例子 flv傳送實例 Flv to send examples of Java examples
?? SVN-BASE
字號:
package org.red5.demos.bwcheck;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.red5.server.api.IConnection;import org.red5.server.api.Red5;import org.red5.server.api.service.IPendingServiceCall;import org.red5.server.api.service.IPendingServiceCallback;import org.red5.server.api.service.IServiceCapableConnection;import org.red5.server.api.stream.IStreamCapableConnection;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** *  * @author The Red5 Project (red5@osflash.org) * @author Dan Rossi */public class ServerClientDetection implements IPendingServiceCallback,		IBandwidthDetection {	IConnection client = null;	double latency = 0;	double cumLatency = 1;	int count = 0;	int sent = 0;	double kbitDown = 0;	double kbitUp = 0;	double deltaDown = 0;	double deltaUp = 0;	double deltaTime = 0;	Long timePassed;	List<Long> pakSent = new ArrayList<Long>();	List<Long> pakRecv = new ArrayList<Long>();	private Map<String, Long> beginningValues;	private double[] payload = new double[1200];	private double[] payload_1 = new double[12000];	private double[] payload_2 = new double[12000];	protected static Logger log = LoggerFactory			.getLogger(ServerClientDetection.class);	public ServerClientDetection() {	}	public void checkBandwidth(IConnection p_client) {		this.calculateClientBw(p_client);	}	public void calculateClientBw(IConnection p_client) {		for (int i = 0; i < 1200; i++) {			payload[i] = Math.random();		}		p_client.setAttribute("payload", payload);		for (int i = 0; i < 12000; i++) {			payload_1[i] = Math.random();		}		p_client.setAttribute("payload_1", payload_1);		for (int i = 0; i < 12000; i++) {			payload_2[i] = Math.random();		}		p_client.setAttribute("payload_2", payload_2);		final IStreamCapableConnection beginningStats = this.getStats();		final Long start = new Long(System.nanoTime() / 1000000); 		this.client = p_client;		beginningValues = new HashMap<String, Long>();		beginningValues.put("b_down", beginningStats.getWrittenBytes());		beginningValues.put("time", start);		this.pakSent.add(start);		this.sent++;		log.info("Starting bandwidth check {} ", new Object[]{start});        		this.callBWCheck("");	}	/**	 * Handle callback from service call.	 */	public void resultReceived(IPendingServiceCall call) { 		Long now = new Long(System.nanoTime()/1000000); //new Long(System.currentTimeMillis());		this.pakRecv.add(now);		timePassed = (now - this.beginningValues.get("time"));		count++;        log.info("count: {} sent: {} timePassed: {} latency: {}", new Object[]{count, sent, timePassed, latency});		if (count == 1) {			latency = Math.min(timePassed, 800);			latency = Math.max(latency, 10);			// We now have a latency figure so can start sending test data.			// Second call. 1st packet sent			pakSent.add(now);			sent++;			log.info("Sending First Payload at {} count: {} sent: {} ", new Object[]{now, count, sent});			this.callBWCheck(this.client.getAttribute("payload"));		}                //To run a very quick test, uncomment the following if statement and comment out the next 3 if statements.		/*		 * else if (count == 2 && (timePassed < 2000)) { pakSent.add(now);		 * sent++; cumLatency++;		 * this.callBWCheck(this.client.getAttribute("payload")); }		 */               //The following will progressivly increase the size of the packets been sent until 1 second has elapsed.		else if ((count > 1 && count < 3) && (timePassed < 1000)) {			pakSent.add(now);			sent++;			cumLatency++;			log.info("Sending Second Payload at {} count: {} sent: {} ", new Object[]{now, count, sent});			this.callBWCheck(this.client.getAttribute("payload_1"));        }        else if ((count >=3 && count < 6) && (timePassed < 1000)) {			pakSent.add(now);			sent++;			cumLatency++;			log.info("Sending Third Payload at {} count: {} sent: {} ", new Object[]{now, count, sent});			this.callBWCheck(this.client.getAttribute("payload_1"));		}		else if (count >= 6 && (timePassed < 1000)) {			pakSent.add(now);			sent++;			cumLatency++;			log.info("Sending Fourth Payload at {} count: {} sent: {}", new Object[]{now, count, sent});			this.callBWCheck(this.client.getAttribute("payload_2"));		}		// Time elapsed now do the calcs		else if (sent == count) {			// see if we need to normalize latency			if (latency >= 100) {				// make sure satelite and modem is detected properly				if (pakRecv.get(1) - pakRecv.get(0) > 1000) {					latency = 100;				}			}			this.client.removeAttribute("payload");			this.client.removeAttribute("payload_1");			this.client.removeAttribute("payload_2");			final IStreamCapableConnection endStats = this.getStats();						this.deltaDown = (endStats.getWrittenBytes() - beginningValues.get("b_down")) * 8 / 1000; // bytes to kbits            this.deltaTime = ((now - beginningValues.get("time")) - (latency * cumLatency)) / 1000; // total dl time - latency for each packet sent in secs                        if (Math.round(deltaTime) <= 0) {				this.deltaTime = (now - beginningValues.get("time") + latency) / 1000;			}			this.kbitDown = Math.round(deltaDown / deltaTime); // kbits / sec			            if (kbitDown < 100) this.kbitDown = 100;                        log.info("onBWDone: kbitDown: {} deltaDown: {} deltaTime: {} latency: {} ", new Object[]{kbitDown, deltaDown, deltaTime, this.latency});                        this.callBWDone();                                 		}	}	private void callBWCheck(Object payload)	{		IConnection conn = Red5.getConnectionLocal();				Map<String, Object> statsValues = new HashMap<String, Object>();		statsValues.put("count", this.count);		statsValues.put("sent", this.sent);		statsValues.put("timePassed", this.timePassed);		statsValues.put("latency", this.latency);		statsValues.put("cumLatency", this.cumLatency);		statsValues.put("payload", payload);				if (conn instanceof IServiceCapableConnection) {			((IServiceCapableConnection) conn).invoke("onBWCheck", new Object[]{statsValues}, this);		}	}	private void callBWDone()	{		IConnection conn = Red5.getConnectionLocal();				Map<String, Object> statsValues = new HashMap<String, Object>();		statsValues.put("kbitDown", this.kbitDown);		statsValues.put("deltaDown", this.deltaDown);		statsValues.put("deltaTime", this.deltaTime);		statsValues.put("latency", this.latency);				if (conn instanceof IServiceCapableConnection) {			((IServiceCapableConnection) conn).invoke("onBWDone", new Object[]{statsValues});		}	}	private IStreamCapableConnection getStats()	{		IConnection conn = Red5.getConnectionLocal();		if (conn instanceof IStreamCapableConnection) {			return (IStreamCapableConnection) conn;		}		return null;	}	public void onServerClientBWCheck() {		IConnection conn = Red5.getConnectionLocal();		this.calculateClientBw(conn);	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线观看一区二区| 亚洲精品免费看| 欧美色网站导航| av在线不卡电影| 成人精品免费网站| 福利视频网站一区二区三区| 国产老女人精品毛片久久| 国产综合色视频| 国产乱国产乱300精品| 国产一区二区影院| 国产精品白丝av| 99re热这里只有精品视频| 91热门视频在线观看| 91久久人澡人人添人人爽欧美| 91色porny在线视频| 欧美撒尿777hd撒尿| 91麻豆精品久久久久蜜臀| 3d动漫精品啪啪| 欧美一级一区二区| 久久精品视频免费| 国产精品传媒入口麻豆| 亚洲免费在线视频一区 二区| 亚洲制服欧美中文字幕中文字幕| 亚洲午夜精品17c| 青青草国产成人av片免费| 黑人精品欧美一区二区蜜桃| 岛国一区二区三区| 欧美在线|欧美| 欧美在线观看一二区| 日韩一区二区免费在线观看| 国产精品视频一区二区三区不卡| 亚洲日本一区二区三区| 日韩福利视频导航| 国产不卡视频一区二区三区| 欧美色视频在线观看| 日韩三级免费观看| 一区在线观看视频| 久久99精品国产麻豆婷婷洗澡| 成人av电影在线| 日韩美女一区二区三区| 亚洲视频在线一区| 韩国欧美国产一区| 欧美午夜理伦三级在线观看| 久久久99精品免费观看不卡| 亚洲一区二区在线免费观看视频 | 综合久久综合久久| 美美哒免费高清在线观看视频一区二区 | 久久精品一区二区三区四区| 一区二区三区中文字幕| 国内精品国产成人国产三级粉色| 在线精品视频免费观看| 中文字幕乱码久久午夜不卡| 日本午夜一区二区| 欧美三日本三级三级在线播放| 国产女主播在线一区二区| 天堂久久久久va久久久久| 99re热视频精品| 久久久久一区二区三区四区| 亚洲mv在线观看| 93久久精品日日躁夜夜躁欧美| 精品国产凹凸成av人网站| 亚洲一二三专区| 色综合天天综合网天天狠天天| 国产免费成人在线视频| 黄页视频在线91| 精品欧美一区二区久久 | 精品午夜久久福利影院| 欧美剧在线免费观看网站| 亚洲欧美欧美一区二区三区| 成人免费毛片嘿嘿连载视频| 国产视频一区不卡| 国产福利91精品| 久久久久久久精| 国产精品一二三四| 国产日韩精品视频一区| 福利一区二区在线| 国产精品美女一区二区三区| 大尺度一区二区| 中文字幕佐山爱一区二区免费| 波多野洁衣一区| 自拍偷在线精品自拍偷无码专区 | 亚洲成人精品在线观看| 欧美午夜片在线看| 日日夜夜精品免费视频| 日韩女优制服丝袜电影| 久久精品国产秦先生| 精品国产污污免费网站入口| 国产一区二区在线观看免费| 国产欧美一区二区三区鸳鸯浴| 福利一区二区在线观看| 亚洲精品免费播放| 9191久久久久久久久久久| 免费成人小视频| 欧美精品一区二区在线观看| 粉嫩久久99精品久久久久久夜| 国产精品短视频| 欧美二区乱c少妇| 激情综合一区二区三区| 欧美国产精品久久| 欧美性感一类影片在线播放| 蜜桃视频在线观看一区二区| 欧美α欧美αv大片| 成人免费av网站| 亚洲超碰精品一区二区| 久久一日本道色综合| 不卡一区二区在线| 午夜av电影一区| 国产亚洲综合性久久久影院| 91精彩视频在线观看| 蜜桃视频在线观看一区| 亚洲私人黄色宅男| 欧美不卡一区二区三区四区| 成人综合激情网| 日本va欧美va瓶| 国产精品女人毛片| 日韩一区二区三区四区| av综合在线播放| 狠狠色丁香久久婷婷综合丁香| 亚洲乱码国产乱码精品精可以看| 精品免费国产一区二区三区四区| 99riav一区二区三区| 国内外成人在线| 性久久久久久久| 国产精品久久久久久久久免费桃花| 欧美人妖巨大在线| 9色porny自拍视频一区二区| 久久机这里只有精品| 亚洲精品国产精品乱码不99| 久久久久久久久久久久久久久99| 欧美老女人第四色| 欧美视频一区在线| 成人av电影在线观看| 国产一区二区导航在线播放| 三级一区在线视频先锋| 亚洲欧美aⅴ...| 国产精品久久夜| 国产婷婷色一区二区三区在线| 正在播放亚洲一区| 欧美人与性动xxxx| 欧美少妇一区二区| 色噜噜夜夜夜综合网| 91啪亚洲精品| 99久久伊人网影院| 国产激情一区二区三区四区| 精品在线免费视频| 日韩和欧美一区二区三区| 亚洲制服丝袜在线| 亚洲狠狠爱一区二区三区| 亚洲精品视频在线观看网站| 国产欧美一区二区精品性| 精品国产伦理网| 久久综合狠狠综合久久激情| 日韩欧美国产三级| 日韩欧美一级精品久久| 日韩欧美国产一二三区| 欧美一级一区二区| 日韩一区二区在线观看视频播放| 欧美日韩不卡视频| 欧美色窝79yyyycom| 欧美美女直播网站| 日韩欧美另类在线| 久久人人爽爽爽人久久久| 国产日韩影视精品| 中文字幕亚洲成人| 亚洲综合一二区| 五月天婷婷综合| 久久狠狠亚洲综合| 国产一区二区福利| 91丨porny丨在线| 欧美日韩在线直播| 欧美成人伊人久久综合网| 国产午夜亚洲精品羞羞网站| 久久久久国产精品免费免费搜索| 国产精品久久午夜夜伦鲁鲁| 亚洲精品中文字幕乱码三区| 五月天网站亚洲| 激情五月播播久久久精品| 国产成人免费视| 色综合久久99| 日韩一区二区在线免费观看| 国产日韩精品一区二区浪潮av| 亚洲日本韩国一区| 三级亚洲高清视频| 成人免费观看男女羞羞视频| 91成人免费在线| 精品福利在线导航| 亚洲免费在线播放| 视频在线观看91| 成人黄色小视频在线观看| 在线观看一区二区视频| 久久影音资源网| 亚洲国产精品尤物yw在线观看| 毛片av中文字幕一区二区| 东方aⅴ免费观看久久av| 欧美日韩一卡二卡| 国产精品私人影院| 精品一区二区三区av| 91成人免费在线| 国产精品乱子久久久久| 久久成人麻豆午夜电影|