⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverresponsereader.java

📁 一个基于J2ME技术的程序,使你可以远程控制装有服务端的PC.
💻 JAVA
字号:
/* * JRemCntl - Copyright (C) 2007 Filippo Di Vattimo <fildiv@gmail.com> * See COPYING */package fildiv.jremcntl.client.core;import java.io.IOException;import java.util.Vector;import fildiv.jremcntl.common.proto.JRemProtocolMessagesType;public class ServerResponseReader {	private JRemClientProtocol proto;	private Vector listeners;	private Thread theThread;	private boolean exit;	public ServerResponseReader(JRemClientProtocol proto,			ServerResponseListener listener) {		this.proto = proto;		listeners = new Vector();		addServerResponseReaderListener(listener);		theThread = new Thread() {			public void run() {				listen();			}		};		theThread.start();	}	public void addServerResponseReaderListener(ServerResponseListener listener) {		listeners.addElement(listener);	}	public void removeServerResponseReaderListener(			ServerResponseListener listener) {		listeners.removeElement(listener);	}		private void fireConnectionClosed() {		for (int index = 0; index < listeners.size(); ++index) {			ServerResponseListener l = (ServerResponseListener) listeners					.elementAt(index);			l.connectionClosed();		}	}	private void fireConnectionLost() {		for (int index = 0; index < listeners.size(); ++index) {			ServerResponseListener l = (ServerResponseListener) listeners					.elementAt(index);			l.connectionLost();		}	}	private void fireReceivedCommandResponse(ServerResponse response) {		for (int index = 0; index < listeners.size(); ++index) {			ServerResponseListener l = (ServerResponseListener) listeners					.elementAt(index);			l.receivedCommandResponse(response);		}	}	public synchronized void close() {				if (exit)			return;				exit = true;				if (theThread == null)			return;				synchronized (theThread) {			try {				// wait for a bit and interrupts the thread								theThread.wait(3000);				theThread.interrupt();							} catch (Exception e) {				// Nothing			}		}	}	private void listen() {		try {			while (!exit) {				ServerResponse sr = proto.retrieveServerResponse();								if (sr != null) {					switch (sr.getType()) {					case JRemProtocolMessagesType.MSG_TYPE_CLOSE_CONNECTION:						exit = true;						fireConnectionClosed();												break;					case JRemProtocolMessagesType.MSG_TYPE_SEND_COMMAND_RESULT:						fireReceivedCommandResponse(sr);						break;						default:						break;					}				}								theThread.sleep(50);			}		} catch (IOException e) {						if (!exit)				fireConnectionLost();				} catch (InterruptedException e) {			// fall in from close method		} catch(Exception e) {			// Never fall in (I hope! :) )				} finally {									synchronized (theThread) {				theThread.notify();				theThread = null;			}		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -