annotate src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java @ 80:2951dd85e9fc

connect to real connection address instead of bad getLocalAddress().
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 30 Apr 2014 13:43:10 +0900
parents cdf7bbe45885
children ca39d762805e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
12c3a73be47f rename package
one
parents: 3
diff changeset
1 package jp.ac.u_ryukyu.treevnc.client;
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.*;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.net.*;
12
12c3a73be47f rename package
one
parents: 3
diff changeset
5
65
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
6 import com.glavsoft.viewer.ViewerImpl;
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 public class EchoClient {
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
9 private String proxyName;
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 private BufferedReader is = null;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 private DataOutputStream os = null;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 private Socket echoSocket = null;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 private boolean runflag = false;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 private WaitReply waitReply;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 private Socket clientSocket = null;
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
16 private int echoPort = 9999;
65
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
17 public ViewerImpl client;
48
6ebe870da138 this version resolve change host problem.
one
parents: 45
diff changeset
18 private String parentAddress;
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
19 public String parentNum;
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
20 public String treeNum;
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
21 public String leaderFlag;
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
22 private String myAddress;
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
3
e7ce2b2ffed8 add and modify files
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
24 public EchoClient(String name, int echoPort) {
e7ce2b2ffed8 add and modify files
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
25 this.echoPort = echoPort;
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
26 this.proxyName = name;
3
e7ce2b2ffed8 add and modify files
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
27 }
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
32
758d025ee24b add TextBox.java
one
parents: 12
diff changeset
29 public void openport() {
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 try {
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
31 echoSocket = new Socket(proxyName, echoPort);
42
fe38611c4b2b change the location of the call cleanUpSession().
one
parents: 38
diff changeset
32 echoSocket.setReuseAddress(true);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 os = new DataOutputStream(echoSocket.getOutputStream());
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 is = new BufferedReader(new InputStreamReader(
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 echoSocket.getInputStream()));
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 } catch (UnknownHostException e) {
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
37 System.err.println("Don't know about host: "+proxyName);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 } catch (IOException e) {
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
39 System.out.println(proxyName + " Connection Faild");
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 System.exit(0);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 /**
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 * @param args
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 * select connect port
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 * @return
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 */
32
758d025ee24b add TextBox.java
one
parents: 12
diff changeset
50 public EchoClient requestHostName(String args) {
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 if (echoSocket != null && os != null && is != null) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 try {
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
53 InetAddress addr = echoSocket.getLocalAddress();
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
54 myAddress = addr.getHostAddress();
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
55 os.writeBytes(myAddress + "\n");
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 os.writeBytes(args + "\n");
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
57 getProxyData(is, echoSocket);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 streamClose();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 } catch (UnknownHostException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 System.err.println("Trying to connect to unknown host: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 } catch (IOException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 System.err.println("IOException: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 }
43
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
65 waitReply = new WaitReply(treeNum, this);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 waitReply.start();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 return this;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 /**
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 * Call at lost host
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 */
35
1b81deb0abb3 write a little part reconnection.
one
parents: 33
diff changeset
74 public boolean lostHost() {
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 if (echoSocket != null && os != null && is != null) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 try {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 if (runflag) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 return true;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 sendDataProxy();
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
81 reConnectionMain(echoSocket);
0ae87c7e767c bug fix
one
parents: 53
diff changeset
82 streamClose();
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 } catch (UnknownHostException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 System.err.println("Trying to connect to unknown host: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 } catch (IOException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 return false;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 } catch (NullPointerException e) {
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
88 //openport();
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 System.out.println("notFoundParents");
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
90 //notfoundParent();
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 return true;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
96 public boolean notfoundParent() {
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 if (echoSocket != null && os != null && is != null) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 runflag = true;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 try {
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
100 sendDataProxy("2", parentNum, null);
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
101 getProxyData(is, echoSocket);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 reConnectionMain(echoSocket);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 streamClose();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 } catch (UnknownHostException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 System.err.println("Trying to connect to unknown host: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 } catch (IOException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 System.err.println("IOException: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 return true;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112
32
758d025ee24b add TextBox.java
one
parents: 12
diff changeset
113 public EchoClient Interruption(Socket _clientSocket) {
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 clientSocket = _clientSocket;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 try {
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
116 BufferedReader lostis = new BufferedReader(new InputStreamReader(
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 clientSocket.getInputStream()));
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
118 getProxyData(lostis, clientSocket);
32
758d025ee24b add TextBox.java
one
parents: 12
diff changeset
119 clientSocket.close();
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 } catch (IOException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 System.out.println(e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 return this;
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
126 void getProxyData(BufferedReader is, Socket soc) throws IOException {
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
127 if ((parentAddress = is.readLine()) != null) {
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
128 System.out.println("Server received: " + parentAddress);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 }
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
130 if ((parentNum = is.readLine()) != null) {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
131 System.out.println("parent: " + parentNum);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 }
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
133 if ((treeNum = is.readLine()) != null) {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
134 System.out.println("treenum: " + treeNum);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 }
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
136 if ((leaderFlag = is.readLine()) != null) {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
137 System.out.println("leaderflag: " + leaderFlag);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 }
80
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
139 InetAddress parent = soc.getInetAddress();
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
140 parentAddress = parent.getHostName();
2951dd85e9fc connect to real connection address instead of bad getLocalAddress().
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 77
diff changeset
141 System.out.println("Actual Server: " + parentAddress);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 void reConnectionMain(Socket echoSocket) {
43
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
145 while (true) {
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
146 try {
59
433c79184c05 merge version2.7.2
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 56
diff changeset
147 client.closeApp();
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
148 // set Socket for connection in VncViewer.
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
149 Socket soc = createSocketForClient(echoSocket, false);
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
150 client.setSocket(soc);
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
151 if (soc != null)
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
152 client.run();
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
153
43
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
154 break;
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
155 } catch (IOException e) {
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
156 break;
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
157 // continue;
43
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
158 }
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
159 }
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 void streamClose() throws IOException {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 os.close();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 is.close();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 echoSocket.close();
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
167
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 void sendDataProxy() {
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
169 if ("1".equals(leaderFlag)) {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
170 sendDataProxy("1", parentNum, treeNum);
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 System.out.println("---------------------------------------------");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 } else {
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
173 // sendDataProxy("3", parentNum, treeNum);
986f16afb753 update before change host.
one
parents: 48
diff changeset
174 // System.out.println("---------------------------------------------");
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
177
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 void sendDataProxy(String type, String num, String treenum) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 try {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 if (treenum != null) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 os.writeBytes(type + "\n");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 os.writeBytes(num + "\n");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 os.writeBytes(treenum + "\n");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 } else {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 os.writeBytes(type + "\n");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 os.writeBytes(num + "\n");
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 } catch (UnknownHostException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 System.err.println("Trying to connect to unknown host: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 } catch (IOException e) {
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 System.err.println("IOException: " + e);
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 }
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 }
43
6687aa9dd55e add flag for screen change in ReciverTask.java.
one
parents: 42
diff changeset
194
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
195 public void getParentName() {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
196 if (clientSocket == null) {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
197 openport();
42
fe38611c4b2b change the location of the call cleanUpSession().
one
parents: 38
diff changeset
198 requestHostName("1"); // 1 is normal connection type.
33
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
199 } else {
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
200 Interruption(clientSocket);
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
201 }
9d3478d11d3b Add the processing of client
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 32
diff changeset
202 }
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
203
65
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
204 public void setViewer(ViewerImpl v) {
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
205 client = v;
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
206 }
65
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
207
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
208 public ViewerImpl getViewer() {
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
209 return client;
ffd7537cebfc cuiversion
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 64
diff changeset
210 }
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
211
45
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
212 public String getMyAddress() {
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
213 return myAddress;
20326a4b9d88 create new change button for client.
one
parents: 44
diff changeset
214 }
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
215
53
978261e2b396 screen change for client
one
parents: 52
diff changeset
216 // create socket for ReConnection.
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
217 public Socket createSocketForClient(Socket soc, boolean flag) throws IOException {
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
218 Socket socket = null;
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
219 String parentAddress;
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
220 int count = 0;
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
221 System.out.println("########################PATH************************");
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
222 BufferedReader is = new BufferedReader(new InputStreamReader(soc.getInputStream()));
53
978261e2b396 screen change for client
one
parents: 52
diff changeset
223 parentAddress = is.readLine();
56
one
parents: 55
diff changeset
224 String port = is.readLine();
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
225 // It is called when the screen changes.
53
978261e2b396 screen change for client
one
parents: 52
diff changeset
226 if ("reconnection".equals(parentAddress)) {
978261e2b396 screen change for client
one
parents: 52
diff changeset
227 while (true) {
978261e2b396 screen change for client
one
parents: 52
diff changeset
228 try {
978261e2b396 screen change for client
one
parents: 52
diff changeset
229 client.setOpenPort(Integer.parseInt(port));
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
230 System.out.println("----------:"+this.parentAddress+"----------:"+port);
53
978261e2b396 screen change for client
one
parents: 52
diff changeset
231 return new Socket(this.parentAddress,
978261e2b396 screen change for client
one
parents: 52
diff changeset
232 Integer.parseInt(port));
978261e2b396 screen change for client
one
parents: 52
diff changeset
233 } catch (IOException e) {
978261e2b396 screen change for client
one
parents: 52
diff changeset
234 try {
978261e2b396 screen change for client
one
parents: 52
diff changeset
235 Thread.sleep(1000);
978261e2b396 screen change for client
one
parents: 52
diff changeset
236 } catch (InterruptedException e1) {
978261e2b396 screen change for client
one
parents: 52
diff changeset
237 e1.printStackTrace();
978261e2b396 screen change for client
one
parents: 52
diff changeset
238 }
978261e2b396 screen change for client
one
parents: 52
diff changeset
239 if (count++ > 5)
978261e2b396 screen change for client
one
parents: 52
diff changeset
240 break;
978261e2b396 screen change for client
one
parents: 52
diff changeset
241 continue;
978261e2b396 screen change for client
one
parents: 52
diff changeset
242 }
978261e2b396 screen change for client
one
parents: 52
diff changeset
243 }
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
244 } else {
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
245 System.out.println("###########################faild" + parentAddress+"port::"+port);
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
246 if (parentAddress == null)
54
0ae87c7e767c bug fix
one
parents: 53
diff changeset
247 return null;
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
248 is.readLine();// parentNum
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
249 }
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
250 socket = new Socket(parentAddress, Integer.parseInt(port));
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
251 socket.setReuseAddress(true);
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
252 System.out.println("Return Soket");
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
253 return socket;
36
b7d4d0349f99 write part of reconnection and remove warning.
one
parents: 35
diff changeset
254 }
52
986f16afb753 update before change host.
one
parents: 48
diff changeset
255
48
6ebe870da138 this version resolve change host problem.
one
parents: 45
diff changeset
256 public String getParentsAddress() {
6ebe870da138 this version resolve change host problem.
one
parents: 45
diff changeset
257 return parentAddress;
6ebe870da138 this version resolve change host problem.
one
parents: 45
diff changeset
258 }
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
259
56
one
parents: 55
diff changeset
260 public void reportConnectionFinished(Socket soc) throws IOException {
one
parents: 55
diff changeset
261 DataOutputStream os = new DataOutputStream(soc.getOutputStream());
one
parents: 55
diff changeset
262 os.writeBytes("finished");
one
parents: 55
diff changeset
263 }
61
d9cf08c6415c During implementation change screen.
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents: 59
diff changeset
264
1
75b54fd9e73a add new package treevnc
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 }