Mercurial > hg > Applications > TightVNC_orginal
view src/main/java/ac/ryukyu/treevnc/client/MyVncClient.java @ 1:75b54fd9e73a
add new package treevnc
author | Yu Taninari <you@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 03 Jul 2012 13:34:43 +0900 |
parents | |
children | dca3bd61b830 |
line wrap: on
line source
package ac.ryukyu.treevnc.client; import java.awt.Image; import java.awt.Insets; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.IOException; import java.net.Socket; import java.util.logging.Logger; import javax.swing.SwingUtilities; import com.glavsoft.exceptions.AuthenticationFailedException; import com.glavsoft.exceptions.FatalException; import com.glavsoft.exceptions.TransportException; import com.glavsoft.exceptions.UnsupportedProtocolVersionException; import com.glavsoft.exceptions.UnsupportedSecurityTypeException; import com.glavsoft.rfb.protocol.Protocol; import com.glavsoft.rfb.protocol.ProtocolSettings; import com.glavsoft.transport.Reader; import com.glavsoft.transport.Writer; import com.glavsoft.viewer.ConnectionManager; import com.glavsoft.viewer.Viewer; import com.glavsoft.viewer.Viewer.PasswordChooser; import com.glavsoft.viewer.cli.Parser; import com.glavsoft.viewer.swing.ClipboardControllerImpl; import com.glavsoft.viewer.swing.ParametersHandler; import com.glavsoft.viewer.swing.Surface; import com.glavsoft.viewer.swing.UiSettings; import com.glavsoft.viewer.swing.ParametersHandler.ConnectionParams; import ac.ryukyu.treevnc.InterfaceForViewer; public class MyVncClient extends Viewer implements InterfaceForViewer, java.lang.Runnable, WindowListener { /** * */ private static final long serialVersionUID = 1L; private boolean inAnApplet = true; private boolean inSeparateFrame = false; private Socket clientSocket = null; private String parent, treenum; private String leaderflag; // private boolean runflag = false; private boolean first = true; private EchoClient echoValue; private int echoPort; private String pHost; private TextBoxClient getHost; private GetDataClient getBcast; private Thread runBcast; private GetHostClient bCast; boolean isClient = false; public static final int DEFAULT_PORT = 5900; public static Logger logger = Logger.getLogger("com.glavsoft"); private static final Insets BUTTONS_MARGIN = new Insets(2, 2, 2, 2); private boolean isZoomToFitSelected; private boolean forceReconnection; private String reconnectionReason; private ConnectionParams connectionParams; private final ProtocolSettings settings; private final UiSettings uiSettings; public MyVncClient() { connectionParams = new ParametersHandler.ConnectionParams(); settings = ProtocolSettings.getDefaultSettings(); uiSettings = new UiSettings(); } public MyVncClient(Parser parser) { this(); ParametersHandler.completeSettingsFromCLI(parser, connectionParams, settings, uiSettings); showControls = ParametersHandler.showControls; passwordFromParams = parser.getValueFor(ParametersHandler.ARG_PASSWORD); logger.info("TightVNC Viewer version " + ver()); isApplet = false; } public void treeVncClient(String[] argv) { MyVncClient v = new MyVncClient(); //v.runClient(argv); } // private void runClient(String[] argv) { public static void main(String[] argv) { String[] mainArgs = argv; System.out.println(mainArgs.length); // input into arguments Decision if (mainArgs.length != 0) { for (int i = 0; i < argv.length; i++) { if ("-c".equals(argv[i])) { // later write } } } else { //getHostData(); } Parser parser = new Parser(); ParametersHandler.completeParserOptions(parser); parser.parse(argv); if (parser.isSet(ParametersHandler.ARG_HELP)) { printUsage(parser.optionsUsage()); System.exit(0); } MyVncClient myClient = new MyVncClient(parser); SwingUtilities.invokeLater(myClient); } private void getHostData() { bCast = new GetHostClient("who"); bCast.createSocket(); bCast.sendData(); getBcast = new GetDataClient(); runBcast = new Thread(getBcast); runBcast.start(); getBcast.setStopFlag(true); connectionParams.hostName = getBcast.text.getAddress(); if("notFound".equals(pHost)) { getHost = new TextBoxClient(); getHost.ipRegister(); connectionParams.hostName = getHost.getAddressOption(); connectionParams.portNumber = Integer.parseInt(getHost.getPortOption()); } else { connectionParams.portNumber = Integer.parseInt(getBcast.text.getPort()); } } @Override public void run() { ConnectionManager connectionManager = new ConnectionManager(this, isApplet); if (forceReconnection) { connectionManager.showReconnectDialog("Connection lost", reconnectionReason); forceReconnection = false; } tryAgain = true; while (tryAgain) { workingSocket = connectionManager.connectToHost(connectionParams, settings); if (null == workingSocket) { closeApp(); break; } logger.info("Connected"); try { workingSocket.setTcpNoDelay(true); // disable Nagle algorithm Reader reader = new Reader(workingSocket.getInputStream()); Writer writer = new Writer(workingSocket.getOutputStream()); workingProtocol = new Protocol(reader, writer, new PasswordChooser(passwordFromParams, connectionParams, containerFrame, this), settings); workingProtocol.handshake(); ClipboardControllerImpl clipboardController = new ClipboardControllerImpl(workingProtocol, settings.getRemoteCharsetName()); clipboardController.setEnabled(settings.isAllowClipboardTransfer()); settings.addListener(clipboardController); surface = new Surface(workingProtocol, this, uiSettings.getScaleFactor()); settings.addListener(this); uiSettings.addListener(surface); containerFrame = createContainer(); connectionManager.setContainerFrame(containerFrame); updateFrameTitle(); workingProtocol.startNormalHandling(this, surface, clipboardController); tryAgain = false; } catch (UnsupportedProtocolVersionException e) { connectionManager.showReconnectDialog("Unsupported Protocol Version", e.getMessage()); logger.severe(e.getMessage()); } catch (UnsupportedSecurityTypeException e) { connectionManager.showReconnectDialog("Unsupported Security Type", e.getMessage()); logger.severe(e.getMessage()); } catch (AuthenticationFailedException e) { passwordFromParams = null; connectionManager.showReconnectDialog("Authentication Failed", e.getMessage()); logger.severe(e.getMessage()); } catch (TransportException e) { connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage()); logger.severe(e.getMessage()); } catch (IOException e) { connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage()); logger.severe(e.getMessage()); } catch (FatalException e) { connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage()); logger.severe(e.getMessage()); } } } @Override public void setEchoValue(EchoClient value) { // TODO Auto-generated method stub } @Override public String readParameter(String name, boolean required) { // TODO Auto-generated method stub return null; } @Override public void getParentName() { // TODO Auto-generated method stub } @Override public void disconnect() { // TODO Auto-generated method stub } @Override public void fatalError(String str) { // TODO Auto-generated method stub } @Override public void fatalError(String str, Exception e) { // TODO Auto-generated method stub } @Override public void destroy() { // TODO Auto-generated method stub } @Override public void enableInput(boolean enable) { // TODO Auto-generated method stub } @Override public void setClientSocket(Socket sock) { // TODO Auto-generated method stub } @Override public void close() { // TODO Auto-generated method stub } @Override public Image getScreenImage() { // TODO Auto-generated method stub return null; } @Override public void writeScreenData(byte[] b, String imageFormat) { // TODO Auto-generated method stub } @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub } }