annotate src/main/java/jp/ac/u_ryukyu/treevnc/AcceptThread.java @ 39:6a34a5220a01

add files
author one
date Tue, 02 Oct 2012 18:13:13 +0900
parents c2f0b6907448
children 3c072f2f39bb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
872d9bcbfe56 Before changing the Viewer.
one
parents: 17
diff changeset
1 package jp.ac.u_ryukyu.treevnc;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 import java.net.Socket;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.IOException;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.io.InputStream;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import java.io.OutputStream;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
17
718cdde720d4 add setInitData()
one
parents: 12
diff changeset
7 import com.glavsoft.transport.Reader;
718cdde720d4 add setInitData()
one
parents: 12
diff changeset
8 import com.glavsoft.transport.Writer;
718cdde720d4 add setInitData()
one
parents: 12
diff changeset
9
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 public class AcceptThread implements Runnable {
38
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
11 public MyRfbProto rfb = null;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 byte[] imageBytes;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 int port;
38
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
14 public boolean flag = false;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
31
872d9bcbfe56 Before changing the Viewer.
one
parents: 17
diff changeset
16 public AcceptThread(MyRfbProto _rfb) {
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 rfb = _rfb;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
31
872d9bcbfe56 Before changing the Viewer.
one
parents: 17
diff changeset
21 public AcceptThread(MyRfbProto _rfb, int p) {
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 rfb = _rfb;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 port = p;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
31
872d9bcbfe56 Before changing the Viewer.
one
parents: 17
diff changeset
26 public void changeRfb(MyRfbProto _rfb) {
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 rfb = _rfb;
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 public void run() {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 rfb.selectPort(port);
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 while (true) {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 try {
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 Socket newCli = rfb.accept();
38
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
36 if(flag) throw new IOException();
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 OutputStream os = newCli.getOutputStream();
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 InputStream is = newCli.getInputStream();
39
6a34a5220a01 add files
one
parents: 38
diff changeset
39 // if(confirmHalt(is)) break;
17
718cdde720d4 add setInitData()
one
parents: 12
diff changeset
40 rfb.newClient(this, newCli, new Writer(os), new Reader(is));
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 } catch (IOException e) {
38
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
42 break;
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 }
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
38
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
46
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
47
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
48 /**
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
49 * Instruction stop if you come from if WaitReply.
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
50 * @return if return true. This Thread halt.
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
51 */
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
52 private boolean confirmHalt(InputStream is) throws IOException {
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
53 byte[] b = new byte[4];
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
54 is.mark(4);
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
55 is.read(b);
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
56 if(String.valueOf(b).equals("halt")) return true;
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
57 is.reset();
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
58 return false;
c2f0b6907448 add doc directory
one
parents: 34
diff changeset
59 }
11
57ae9fbb1245 add files
Taninari YU <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 }