Mercurial > hg > Members > nobuyasu > tightVNCProxy
annotate src/myVncProxy/AcceptClient.java @ 119:32dbcb891835
modify AcceptClient.java
author | Yu Taninari <e085734@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Aug 2011 05:26:01 +0900 |
parents | 7d9e9dfd7eb8 |
children | 94df4d2bc5fe |
rev | line source |
---|---|
73 | 1 package myVncProxy; |
2 | |
3 import java.net.Socket; | |
4 import java.io.*; | |
5 import java.net.*; | |
6 import java.util.*; | |
7 | |
8 public class AcceptClient extends Thread { | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
9 int counter = 0, parentnum = 0/* 落ちたときの親の番号をカウントするためのもの */; |
73 | 10 LinkedList<String> ls = new LinkedList<String>(); |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
11 boolean runflag = false; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
12 private String name; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
13 boolean addrRegistor = true; |
73 | 14 |
15 public AcceptClient(String _name) { | |
16 name = _name; | |
17 } | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
18 |
73 | 19 public AcceptClient() { |
20 new CreateThread(this); | |
21 } | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
22 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
23 public synchronized void transferParentAddrerss(BufferedReader is,PrintStream os) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
24 String line, port; |
73 | 25 int intv_time = 100; |
26 String request; | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
27 int treebranch = 2;// treeの子ノードの数 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
28 String leaderflag = "0", sendleaderflag = "0"; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
29 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
30 // クライアントからのメッセージを待ち、受け取ったメッセージをそのまま返す |
73 | 31 try { |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
32 while (true) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
33 line = is.readLine(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
34 port = is.readLine(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
35 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
36 System.out.println("データーを受信しましたlin=" + line + " port=" |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
37 + port); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
38 // 自分の IPADRESSを取得する |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
39 InetAddress addr = InetAddress.getLocalHost(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
40 String add = new String(addr.getHostAddress()); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
41 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
42 if ("1".equals(line)) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
43 System.out.println("親が落ちましたmessage" + port); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
44 String checkRepetition = is.readLine(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
45 os.println(ls.getLast()); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
46 parentnum = (Integer.parseInt(port) - 1) / treebranch; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
47 String newparent = ls.get(parentnum); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
48 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
49 counter--; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
50 runflag = true; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
51 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
52 sendleaderflag = decisionLeader(Integer.parseInt(port), |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
53 treebranch); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
54 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
55 Child report = new Child(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
56 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
57 report.reportLastNode(ls.getLast(), newparent, port, |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
58 String.valueOf(parentnum), sendleaderflag, counter); |
73 | 59 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
60 listupdate(port); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
61 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
62 int g = 0; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
63 for (String bs : ls) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
64 System.out.println(g + "番目" + bs); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
65 g++; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
66 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
67 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
68 os.println(port); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
69 // os.println(leaderflag); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
70 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
71 leaderflag = decisionLeader( |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
72 Integer.parseInt(checkRepetition), treebranch); |
73 | 73 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
74 if (Integer.parseInt(checkRepetition) == counter + 1) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
75 checkRepetition = "stop"; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
76 } else { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
77 checkRepetition = "go"; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
78 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
79 os.println(checkRepetition); |
73 | 80 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
81 // os.println(leaderflag); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
82 Thread.sleep(intv_time); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
83 is.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
84 os.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
85 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
86 } else if ("2".equals(line)) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
87 parentnum = (Integer.parseInt(port) - 1) / treebranch; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
88 String newparent = ls.get(parentnum); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
89 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
90 outputStream(os, newparent, String.valueOf(parentnum), |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
91 String.valueOf(counter), leaderflag); |
73 | 92 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
93 os.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
94 is.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
95 } else if ("3".equals(line)) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
96 String checkRepetition = is.readLine(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
97 System.out.println("落ちたのを確認しました"); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
98 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
99 os.println(ls.get(Integer.parseInt(port))); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
100 os.println(port); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
101 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
102 if (checkRepetition.equals(ls.getLast())) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
103 checkRepetition = "stop"; |
74 | 104 } else { |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
105 checkRepetition = "go"; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
106 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
107 os.println(checkRepetition); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
108 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
109 System.out |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
110 .println("num4=" + ls.get(Integer.parseInt(port))); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
111 line = null; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
112 runflag = false; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
113 is.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
114 os.close(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
115 } else { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
116 if (addrRegistor == true) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
117 ls.add(add); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
118 addrRegistor = false; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
119 } |
73 | 120 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
121 if (line != null) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
122 addClientAdress(line, ls); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
123 counter++; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
124 } else { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
125 break; |
73 | 126 } |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
127 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
128 if (counter >= treebranch + 1) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
129 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
130 leaderflag = decisionLeader(counter, treebranch); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
131 parentnum = (counter - 1) / treebranch; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
132 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
133 request = ls.get(parentnum); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
134 System.out.println(parentnum); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
135 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
136 outputStream(os, request, String.valueOf(parentnum), |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
137 String.valueOf(counter), leaderflag); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
138 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
139 checkParameter(parentnum, counter, leaderflag); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
140 } else { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
141 // treeの親ノードに接続する人に接続する人を教える |
119
32dbcb891835
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
115
diff
changeset
|
142 outputStream(os, add, "0", String.valueOf(counter), |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
143 leaderflag); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
144 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
145 Thread.sleep(intv_time); |
73 | 146 } |
147 } | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
148 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
149 } catch (IOException e) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
150 System.out.println(e); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
151 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
152 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
153 catch (InterruptedException e) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
154 e.printStackTrace(); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
155 } |
73 | 156 } |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
157 |
73 | 158 /** |
159 * @param port | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
160 * parent value |
73 | 161 */ |
162 void listupdate(String port) { | |
163 ls.remove(Integer.parseInt(port)); | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
164 ls.add(Integer.parseInt(port), ls.getLast()); |
73 | 165 ls.removeLast(); |
166 } | |
167 | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
168 void outputStream(PrintStream os, String request, String parentnum, |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
169 String treenum, String leaderflag) { |
73 | 170 os.println(request); |
171 os.println(parentnum); | |
74 | 172 os.println(treenum); |
73 | 173 os.println(leaderflag); |
174 } | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
175 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
176 void checkParameter(int parent, int counter, String leaderflag) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
177 System.out.println("pの値=" + parentnum); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
178 System.out.println("iの値=" + counter); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
179 System.out.println("leaderflag=" + leaderflag + "\n"); |
73 | 180 } |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
181 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
182 void addClientAdress(String line, LinkedList<String> ls) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
183 int g = 0; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
184 if (line != null) { |
73 | 185 ls.add(line); |
186 } | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
187 for (String bs : ls) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
188 System.out.println(g + "番目" + bs); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
189 g++; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
190 } |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
191 } |
73 | 192 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
193 String decisionLeader(int counter, int treebranch) { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
194 if ((counter - 1) % treebranch == 1) { // children in most young treenum |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
195 // have leaderflag 1 other 0 |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
196 return "0"; |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
197 } else { |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
198 return "1"; |
73 | 199 } |
200 } | |
201 | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
202 |
73 | 203 } |
204 | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
205 class Child { |
73 | 206 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
207 void reportLastNode(String hiddenchild, String newparent, |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
208 String newtreenum, String newpnum, String newleaderflag, int i) |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
209 throws IOException { |
73 | 210 try { |
211 Socket echoSocket; | |
212 System.out.println(hiddenchild + "に接続します"); | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
213 echoSocket = new Socket(hiddenchild, 10001 + (i + 1));// i+1は実験中に同じマシーンを使っていたのでportを変えて対応、本番時には取り除く予定。 |
73 | 214 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
215 DataOutputStream os = new DataOutputStream( |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
216 echoSocket.getOutputStream()); |
73 | 217 |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
218 os.writeBytes(newparent + "\n"); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
219 os.writeBytes(newpnum + "\n"); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
220 os.writeBytes(newtreenum + "\n"); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
221 os.writeBytes(newleaderflag + "\n"); |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
222 |
74 | 223 os.close(); |
73 | 224 } catch (UnknownHostException e) { |
225 System.err.println("Don't know about host: localhost"); | |
226 } catch (IOException e) { | |
115
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
227 System.err |
7d9e9dfd7eb8
modify AcceptClient.java
Yu Taninari <e085734@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
228 .println("Couldn't get I/O for the connection to: localhost"); |
73 | 229 } |
230 | |
231 } | |
232 } |