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

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

?? tcpmonitorserver.java

?? 一個遠程控制的java測試程序源代碼.轉于網上
?? JAVA
字號:
/*
 * @(#)TcpMonitorServer.java 1.00 2005-9-4
 *
 * Copyright 2005 BeanSoft Studio. All rights reserved.
 * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package studio.beansoft.remotecontrol.server;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Hashtable;

import studio.beansoft.net.HttpParameterParser;
import studio.beansoft.remotecontrol.ConfigurationManager;
import studio.beansoft.util.logging.Logger;
import sun.net.NetworkServer;

import com.keypoint.PngEncoder;
import com.keypoint.PngEncoderB;

/**
 * TcpMonitorServer holds a server that send server screen images to client,
 * and do keyboard and mouse operations requested by the client.
 * 
 * Chinese documents:
 * TCP 監控服務器 發送服務器屏幕圖像到客戶端, 并根據客戶機的請求進行鼠標和鍵盤操作.
 * 
 * @author BeanSoft
 * @version 1.00 2005-9-4
 */
public class TcpMonitorServer extends NetworkServer {
	/** The robot object */
	protected Robot robot;
	
	/** Logger */
	private static Logger logger = Logger.getLogger(TcpMonitorServer.class);
	/**
	 * 
	 */
	public TcpMonitorServer() {
		try {
			robot = new Robot();
		} catch (AWTException e1) {
			// TODO auto generated try-catch
			e1.printStackTrace();
			return;
		}
	
		try {
			String portString = ConfigurationManager.getConfiguration().getProperty("server_port");
			startServer(Integer.parseInt(portString));
			
			System.out.println(getClass().getName() + " started at " + portString);
		} catch (Exception e) {
			// TODO auto generated try-catch
			e.printStackTrace();
		}
	}
	
	/**
	 * Service client as a TCP monitor server.
	 * @see studio.beansoft.remotecontrol.client.TcpCommunicationThread
	 */
	public void serviceRequest() throws IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(this.clientInput));
		
		String line;
		
		// Buffered output
		BufferedOutputStream bufferout = new BufferedOutputStream(clientOutput, 
				10240);
		byte[] imgData;// Produced image data
		
		while((line = in.readLine()) != null) {
			long startTime = System.currentTimeMillis();
			doEventHandle(line);
			
			// Keypoint png file output
            PngEncoderB pngb = new PngEncoderB(captureScreen(),
					PngEncoder.NO_ALPHA, 0, 9);
            
			imgData = pngb.pngEncode();
			
			bufferout.write(("length" + imgData.length + '\n').getBytes());
			
			bufferout.write(imgData);
			bufferout.flush();
			
			logger.info("Execution time:" + (System.currentTimeMillis() - startTime));
			
			startTime = System.currentTimeMillis();
			
		}
	}
	
	/**
	 * Capture the current computer's screen to a image.
	 * @return
	 */
	public BufferedImage captureScreen() {
		//	 determine current screen size
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Dimension screenSize = toolkit.getScreenSize();
		Rectangle screenRect = new Rectangle(screenSize);
		// create screen shot

		BufferedImage image = robot.createScreenCapture(screenRect);
		
		return image;
	}
	
	/**
	 * Do event handles, such as mouse and keyboard events.
	 * @param parameters the request string with parameters
	 */
	public void doEventHandle(String parameters) {
		Hashtable param = HttpParameterParser.parseURIParameters(parameters);
//		 Mouse events
		String mouse_events = (String)param.get("mouse_events");
		if(mouse_events != null && mouse_events.length() > 0) {
			java.util.ArrayList list = studio.beansoft.remotecontrol.MouseEventCodec.stringToMouseEvent(mouse_events);

			long startTime = 0;

			for (int i = 0; i < list.size(); i++) {
				java.awt.event.MouseEvent e = (java.awt.event.MouseEvent) list.get(i);

				if(i == 0) {
					startTime = e.getWhen();
				}

				// Move mouse to given position
				robot.mouseMove(e.getX(), e.getY());

				int buttonMask = java.awt.event.InputEvent.BUTTON1_MASK;// 鼠標按鍵的掩碼
				int button = e.getButton();// Mouse buttons , @since JDK 1.4
				
//				 Change button mask
				switch (button) {
					case MouseEvent.BUTTON1:
						buttonMask = java.awt.event.InputEvent.BUTTON1_MASK;
						break;
					case MouseEvent.BUTTON2:
						buttonMask = java.awt.event.InputEvent.BUTTON2_MASK;
						break;
					case MouseEvent.BUTTON3:
						buttonMask = java.awt.event.InputEvent.BUTTON3_MASK;
						break;						
					default:
						break;
				}
				
				if(e.getID() == MouseEvent.MOUSE_PRESSED) {
				// System.out.println("Press at " + e.getX() + "," + e.getY());
					robot.mousePress(buttonMask);
				} else	if(e.getID() == MouseEvent.MOUSE_RELEASED) {
				//	System.out.println("Realease at " + e.getX() + "," + e.getY());
					robot.mouseRelease(buttonMask);
				}

				robot.delay(10);

				// Pause some time
				//robot.delay((int)(e.getWhen() - startTime));

//				System.out.println("Delayed " + (e.getWhen() - startTime) + "ms");

				startTime = e.getWhen();
			}
		}

//		 Key board events
		String key_events = (String)param.get("key_events");
		if(key_events != null && key_events.length() > 0) {
			java.util.ArrayList list = studio.beansoft.remotecontrol.KeyEventCodec.stringToKeyEvent(key_events);

			long startTime = 0;

			for (int i = 0; i < list.size(); i++) {
				java.awt.event.KeyEvent e = (java.awt.event.KeyEvent) list.get(i);

				if(i == 0) {
					startTime = e.getWhen();
				}

				if(e.getID() == KeyEvent.KEY_PRESSED) {
				// System.out.println("Press at " + e.getX() + "," + e.getY());
					robot.keyPress(e.getKeyCode());
				} else	if(e.getID() == KeyEvent.KEY_RELEASED) {
				//	System.out.println("Realease at " + e.getX() + "," + e.getY());
					robot.keyRelease(e.getKeyCode());
				}

				robot.delay(10);

				// Pause some time
				//robot.delay((int)(e.getWhen() - startTime));

//				System.out.println("Delayed " + (e.getWhen() - startTime) + "ms");

				startTime = e.getWhen();
			}
		}
	}	

	/**
	 * Running the TCP server.
	 * @param args
	 */
	public static void main(String[] args) {
		new TcpMonitorServer();
	}

	/**
	 * @return returns the robot object.
	 */
	public Robot getRobot() {
		return robot;
	}

	/**
	 * @param robot The robot object to set.
	 */
	public void setRobot(Robot robot) {
		this.robot = robot;
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费高清在线观看| 琪琪久久久久日韩精品| 久久综合狠狠综合久久综合88 | 国产精品伦一区| 久久先锋影音av鲁色资源| 欧美日本免费一区二区三区| 欧美日韩一二三区| 欧美酷刑日本凌虐凌虐| 欧美高清www午色夜在线视频| 欧美主播一区二区三区美女| 欧美在线一区二区三区| 7777精品伊人久久久大香线蕉完整版 | 国内精品久久久久影院一蜜桃| 蜜臀av一区二区在线观看| 精品一区二区在线观看| 丁香婷婷深情五月亚洲| 91亚洲永久精品| 欧美高清视频不卡网| 欧美tickling网站挠脚心| 久久久久九九视频| 亚洲欧美偷拍另类a∨色屁股| 一区二区免费看| 麻豆精品精品国产自在97香蕉| 国产成人一区二区精品非洲| 色综合色狠狠综合色| 欧美人妇做爰xxxⅹ性高电影| 精品久久人人做人人爰| 中文字幕五月欧美| 免费观看在线综合| av资源站一区| 91精品国产综合久久久久久漫画 | 一区二区三区丝袜| 麻豆国产欧美一区二区三区| 国内精品嫩模私拍在线| 色婷婷久久99综合精品jk白丝| 91精品国产色综合久久| 国产精品久久久久久久久免费丝袜| 亚洲图片欧美视频| 豆国产96在线|亚洲| 欧美日韩成人综合| 国产精品护士白丝一区av| 日韩av网站免费在线| 91亚洲午夜精品久久久久久| 欧美mv日韩mv国产网站app| 一区二区三区加勒比av| 国产在线精品国自产拍免费| 在线视频亚洲一区| 国产精品免费av| 蜜桃视频一区二区三区| 欧美三级三级三级| 亚洲丝袜制服诱惑| 国产成人在线网站| 日韩欧美一二三| 亚洲成人av资源| 色欧美日韩亚洲| 亚洲国产成人私人影院tom | 成人免费毛片aaaaa**| 日韩一级欧美一级| 亚洲综合久久av| va亚洲va日韩不卡在线观看| 精品久久久久一区| 免费成人小视频| 91精品国产高清一区二区三区蜜臀 | 色妹子一区二区| 国产精品视频第一区| 国产精品资源在线| 精品国精品国产尤物美女| 日本vs亚洲vs韩国一区三区二区| 欧美色图免费看| 开心九九激情九九欧美日韩精美视频电影 | 裸体歌舞表演一区二区| 欧美日韩国产系列| 亚洲无线码一区二区三区| 欧美午夜一区二区三区免费大片| 亚洲日本免费电影| 色天使色偷偷av一区二区| 亚洲精品乱码久久久久久黑人| jlzzjlzz亚洲日本少妇| 亚洲日本一区二区三区| 色综合久久综合中文综合网| 成人欧美一区二区三区黑人麻豆| 国产69精品久久久久毛片| 国产欧美日韩一区二区三区在线观看| 韩国成人在线视频| 久久精品一区二区| 粉嫩一区二区三区在线看| 国产精品美女久久久久久久久久久| 国产精品资源在线| 亚洲日本成人在线观看| 欧美曰成人黄网| 日韩和的一区二区| 欧美成人a视频| 成人禁用看黄a在线| 亚洲激情综合网| 欧美精品在线观看一区二区| 男女男精品视频| 欧美激情一区二区三区四区| 一本色道久久综合狠狠躁的推荐| 樱花草国产18久久久久| 日韩欧美在线观看一区二区三区| 麻豆91精品91久久久的内涵| 久久精品人人做人人综合| 91色.com| 九色|91porny| 一区二区三区在线观看视频| 日韩一级成人av| 99精品久久免费看蜜臀剧情介绍| 亚洲成人免费观看| 国产欧美日韩综合| 欧美日韩激情在线| 成人免费毛片aaaaa**| 男女男精品视频网| 一区二区激情视频| 国产亚洲女人久久久久毛片| 日本道在线观看一区二区| 久久黄色级2电影| 亚洲日本va午夜在线影院| 日韩视频一区二区在线观看| 94色蜜桃网一区二区三区| 久久精品99国产精品日本| 亚洲黄色小说网站| 国产精品人成在线观看免费| 欧美一区二区三区免费观看视频| 成人精品一区二区三区四区| 天天综合网天天综合色| 亚洲欧美一区二区视频| 精品国产污污免费网站入口 | 99久久精品免费| 国产一区二区成人久久免费影院| 亚洲18影院在线观看| 亚洲欧美日韩一区二区 | 亚洲欧美日韩国产综合| 久久综合狠狠综合久久激情| 欧美精品18+| 欧美影院午夜播放| 一本一本久久a久久精品综合麻豆| 国产剧情一区二区三区| 免费成人深夜小野草| 成人毛片视频在线观看| 久久精品久久精品| 天天影视网天天综合色在线播放| 亚洲欧美激情在线| 亚洲激情五月婷婷| 亚洲视频狠狠干| 综合久久一区二区三区| 国产精品成人一区二区艾草| 中文天堂在线一区| 国产精品女同一区二区三区| 久久久久久电影| 中文字幕高清一区| 国产精品网友自拍| 1000精品久久久久久久久| 欧美激情一区二区在线| 国产精品另类一区| 亚洲品质自拍视频| 一二三区精品福利视频| 亚洲成a人v欧美综合天堂| 偷窥国产亚洲免费视频| 日本视频免费一区| 久久精品国产亚洲高清剧情介绍 | 亚洲三级久久久| 亚洲综合无码一区二区| 亚洲午夜成aⅴ人片| 日韩国产精品91| 青青国产91久久久久久| 久久精品国产免费看久久精品| 久久99热这里只有精品| 国产一区在线观看视频| 丰满少妇久久久久久久| 色88888久久久久久影院按摩| 在线观看国产精品网站| 在线成人午夜影院| 久久久久综合网| 一区二区在线观看免费视频播放| 一区二区在线观看免费| 毛片基地黄久久久久久天堂| 国产一区在线精品| 色素色在线综合| 欧美videos中文字幕| 国产精品丝袜91| 午夜在线电影亚洲一区| 国内精品视频666| 在线亚洲一区观看| 精品国产乱码久久久久久牛牛| 国产精品白丝在线| 日日摸夜夜添夜夜添精品视频| 国产精品18久久久久久久网站| 色婷婷一区二区三区四区| 日韩欧美亚洲一区二区| 亚洲嫩草精品久久| 九一久久久久久| 欧美色视频一区| 国产精品久久久久久久久久久免费看 | 亚洲欧洲国产日韩| 日本女优在线视频一区二区| 波多野结衣在线aⅴ中文字幕不卡| 欧美日韩一区二区欧美激情| 亚洲国产高清aⅴ视频| 美国十次了思思久久精品导航| 在线视频综合导航|