annotate src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java @ 38:c2f0b6907448

add doc directory
author one
date Thu, 27 Sep 2012 19:32:25 +0900
parents 1454d6fe96c1
children 3c072f2f39bb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
12c3a73be47f rename package
one
parents: 11
diff changeset
1 package jp.ac.u_ryukyu.treevnc.server;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.awt.event.*;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.io.*;
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
5 import java.net.Socket;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
6 import java.net.UnknownHostException;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
7 import java.util.LinkedList;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 import java.util.logging.Logger;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
31
872d9bcbfe56 Before changing the Viewer.
one
parents: 28
diff changeset
10 import jp.ac.u_ryukyu.treevnc.AcceptThread;
872d9bcbfe56 Before changing the Viewer.
one
parents: 28
diff changeset
11
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
13
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 import com.glavsoft.exceptions.AuthenticationFailedException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 import com.glavsoft.exceptions.FatalException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 import com.glavsoft.exceptions.TransportException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 import com.glavsoft.exceptions.UnsupportedProtocolVersionException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 import com.glavsoft.exceptions.UnsupportedSecurityTypeException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 import com.glavsoft.rfb.IChangeSettingsListener;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 import com.glavsoft.rfb.IRfbSessionListener;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 import com.glavsoft.rfb.protocol.Protocol;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 import com.glavsoft.rfb.protocol.ProtocolSettings;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 import com.glavsoft.transport.Reader;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 import com.glavsoft.transport.Writer;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 import com.glavsoft.viewer.ConnectionManager;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 import com.glavsoft.viewer.Viewer;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 import com.glavsoft.viewer.cli.Parser;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 import com.glavsoft.viewer.swing.ClipboardControllerImpl;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 import com.glavsoft.viewer.swing.ParametersHandler;
16
e654b2e4de64 add TreeTask.java
one
parents: 15
diff changeset
30 import com.glavsoft.viewer.swing.Surface;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 import com.glavsoft.viewer.swing.UiSettings;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 import com.glavsoft.viewer.swing.ParametersHandler.ConnectionParams;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 public class VncProxyService extends Viewer implements Runnable,
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 IRfbSessionListener, IChangeSettingsListener {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 /**
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 *
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 */
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 private static final long serialVersionUID = 1L;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
12
12c3a73be47f rename package
one
parents: 11
diff changeset
42 public MyRfbProtoProxy rfb;
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
43 private ConnectionManager connectionManager;
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
44 private VncProxyService vps;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
45 private CreateThread createThread;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
46 AcceptClient aClient;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
47 private int port;
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
48 // public AcceptClient acc;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 public VncProxyService(Parser parser) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 this();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 ParametersHandler.completeSettingsFromCLI(parser, connectionParams, settings, uiSettings);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 showControls = ParametersHandler.showControls;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 passwordFromParams = parser.getValueFor(ParametersHandler.ARG_PASSWORD);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 logger.info("TightVNC Viewer version " + ver());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 isApplet = false;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 public VncProxyService() {
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
59 rfb = new MyRfbProtoProxy();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
60 aClient = new AcceptClient();
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
61 connectionManager = new ConnectionManager(this, isApplet);
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 connectionParams = new ParametersHandler.ConnectionParams();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 settings = ProtocolSettings.getDefaultSettings();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 uiSettings = super.uiSettings;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 boolean isClient = false;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 public static final int DEFAULT_PORT = 5900;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 public static Logger logger = Logger.getLogger("com.glavsoft");
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 private boolean forceReconnection;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 private String reconnectionReason;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 private ConnectionParams connectionParams;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 private final ProtocolSettings settings;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 private final UiSettings uiSettings;
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
75 private AcceptThread acceptThread;
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
76 private GetBroadCastProxy getCast;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 public static void main(String[] argv) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 String[] mainArgs = argv;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 System.out.println(mainArgs.length);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 // input into arguments Decision
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 Parser parser = new Parser();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 ParametersHandler.completeParserOptions(parser);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 parser.parse(argv);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 if (parser.isSet(ParametersHandler.ARG_HELP)) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 printUsage(parser.optionsUsage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 System.exit(0);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 VncProxyService vps = new VncProxyService(parser);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 if (mainArgs.length != 0) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 for (int i = 0; i < argv.length; i++) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 vps.setArguments(mainArgs);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 // write later
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 } else {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 //getHostData();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 //SwingUtilities.invokeLater(myClient);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 Thread th = new Thread(vps);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 th.start();
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
104 try {
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
105 th.join();
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
106 } catch (InterruptedException e) {
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
107 e.printStackTrace();
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
108 }
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
109 vps.createConnectionAndStart();
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 private void setArguments(String[] mainArgs) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 @Override
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 public void run() {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 // getHostData();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 if (forceReconnection) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 connectionManager.showReconnectDialog("Connection lost", reconnectionReason);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 forceReconnection = false;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 tryAgain = true;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 while (tryAgain) {
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
124 // connectionParams.hostName = arguments[0];
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 // workingSocket = connectionManager.connectToTreeHost(connectionParams, settings);
35
1b81deb0abb3 write a little part reconnection.
one
parents: 34
diff changeset
126 workingSocket = connectionManager.connectToHost(connectionParams, settings, rfb);
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 if (null == workingSocket) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 closeApp();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 break;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 logger.info("Connected");
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 try {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 workingSocket.setTcpNoDelay(true); // disable Nagle algorithm
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 Reader reader = new Reader(workingSocket.getInputStream());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 Writer writer = new Writer(workingSocket.getOutputStream());
19
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
137 // rfb.setStream(reader,writer);
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 workingProtocol = new Protocol(reader, writer,
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 new PasswordChooser(passwordFromParams, connectionParams, containerFrame, this),
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 settings);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 workingProtocol.handshake();
27
85958cba5d15 Create new constructor in TreeTask
one
parents: 23
diff changeset
142 rfb.setProtocolContext(workingProtocol);
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
143 threadSetAndStart();
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 // input into change parents
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 ClipboardControllerImpl clipboardController =
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 new ClipboardControllerImpl(workingProtocol, settings.getRemoteCharsetName());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 clipboardController.setEnabled(settings.isAllowClipboardTransfer());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 settings.addListener(clipboardController);
19
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
149 surface = new Surface(workingProtocol, this, uiSettings.getScaleFactor()); // this method
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
150 settings.addListener(this);
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
151 uiSettings.addListener(surface);
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
152 containerFrame = createContainer();
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
153 connectionManager.setContainerFrame(containerFrame);
ea83f4be0cc9 remove is and os
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
154 updateFrameTitle();
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
155 containerFrame.dispose();
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
156 containerFrame = null;
16
e654b2e4de64 add TreeTask.java
one
parents: 15
diff changeset
157 workingProtocol.startNormalHandling(this, surface, clipboardController,rfb);
20
98519d16a8c3 getInitData from ProtocolContext
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
158 // rfb.setInitData(workingProtocol.getInitData()); too early
16
e654b2e4de64 add TreeTask.java
one
parents: 15
diff changeset
159 // workingProtocol.startNormalHandling(this, surface, clipboardController);
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 tryAgain = false;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 } catch (UnsupportedProtocolVersionException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 connectionManager.showReconnectDialog("Unsupported Protocol Version", e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 } catch (UnsupportedSecurityTypeException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 connectionManager.showReconnectDialog("Unsupported Security Type", e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 } catch (AuthenticationFailedException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 passwordFromParams = null;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 connectionManager.showReconnectDialog("Authentication Failed", e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 } catch (TransportException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 } catch (IOException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 } catch (FatalException e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 connectionManager.showReconnectDialog("Connection Error", "Connection Error" + ": " + e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 logger.severe(e.getMessage());
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 }
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
182 }
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
183
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
184 public void createConnectionAndStart() {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
185 port = rfb.selectPort(5999);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
186 acceptThread = new AcceptThread(rfb, port);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
187 Thread thread = new Thread(acceptThread);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
188 thread.start();
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
189 getCast = new GetBroadCastProxy(this,
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
190 workingProtocol.getRemoteDesktopName(),
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
191 this.connectionParams.hostName);
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
192 thread = new Thread(getCast);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
193 thread.start();
13
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
194 }
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
195
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
196 public void start_threads() {
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
197 //rfbThread.start();
406fa09ae645 modify VncProxyService.java
one
parents: 12
diff changeset
198 //rfb.requestThreadStart();
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
200
34
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
201 public void proxyStart(String[] argv) {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
202 String[] mainArgs = argv;
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
203 System.out.println(mainArgs.length);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
204 // input into arguments Decision
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
205
34
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
206 Parser parser = new Parser();
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
207 ParametersHandler.completeParserOptions(parser);
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
208
34
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
209 parser.parse(argv);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
210 if (parser.isSet(ParametersHandler.ARG_HELP)) {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
211 printUsage(parser.optionsUsage());
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
212 System.exit(0);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
213 }
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
214 vps = new VncProxyService(parser);
34
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
215 if (mainArgs.length != 0) {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
216 for (int i = 0; i < argv.length; i++) {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
217 vps.setArguments(mainArgs);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
218 // write later
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
219 }
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
220 } else {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
221 //getHostData();
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
222 }
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
223 //SwingUtilities.invokeLater(myClient);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
224 Thread th = new Thread(vps);
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
225 th.start();
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
226 try {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
227 th.join();
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
228 } catch (InterruptedException e) {
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
229 e.printStackTrace();
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
230 }
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
231 vps.createConnectionAndStart();
34
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
232 }
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
233
f70008073a03 add TreeViewer.java
one
parents: 31
diff changeset
234
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 @Override
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 public void destroy() {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
237
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
239
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 @Override
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 public void windowClosing(WindowEvent e) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 if (e != null && e.getComponent() != null) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 e.getWindow().setVisible(false);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
245 closeApp();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
246 }
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
247
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
248 private void threadSetAndStart() throws UnknownHostException, IOException {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
249 //aClient = new AcceptClient();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
250 createThread = new CreateThread(aClient);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
251 Thread thread = new Thread(createThread);
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
252 thread.start();
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
253 thread = new Thread(new ChangeHost(new VncProxyService(), forceReconnection,this));
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
254 thread.start();
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
255 // createSocketAndSend(aClient.getList(),String.valueOf(port));
37
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
256 }
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
257
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
258 public void setConnectionManager(ConnectionManager _connectionManager) {
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
259 connectionManager = _connectionManager;
1454d6fe96c1 add Changehost.java
one
parents: 35
diff changeset
260 }
38
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
261
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
262 protected void socketClose() {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
263 try {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
264 workingSocket.close();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
265 acceptThread.flag=true;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
266 getCast.setStopFlag(true);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
267 //createThread.setStopFlag(true);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
268 } catch (IOException e) {/*nop*/}
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
269 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
270
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
271 @Override
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
272 public void rfbSessionStopped(final String reason) {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
273 if (workingSocket != null && workingSocket.isConnected()) {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
274 try {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
275 workingSocket.close();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
276 } catch (IOException e) { /*nop*/ }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
277 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
278 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
279
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
280 private void createSocketAndSend(LinkedList<String> clientList,String port) throws UnknownHostException, IOException {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
281 int i = 0;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
282 for(String client : clientList) {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
283 if(i!=0) {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
284 Socket echoSocket;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
285 echoSocket = new Socket(client, 10001);
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
286 DataOutputStream os = new DataOutputStream(echoSocket.getOutputStream());
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
287 os.writeBytes("reconnection\n");
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
288 os.writeBytes(port+"\n");
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
289 os.close();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
290 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
291 i++;
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
292 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
293 }
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
294
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
295 public void changeVNCServer() {
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
296 // sender and re
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
297 workingProtocol.cleanUpSession();
c2f0b6907448 add doc directory
one
parents: 37
diff changeset
298 }
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
299 }