annotate src/myVncProxy/GetBroadCast.java @ 191:b2f0cd0cff6c default tip

Added tag Version-1.0 for changeset 79046b4e5990
author Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
date Tue, 29 Nov 2011 15:52:44 +0900
parents 545183e14d4e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
189
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package myVncProxy;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.ByteArrayInputStream;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 import java.io.DataInputStream;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import java.io.IOException;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 import java.net.DatagramPacket;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import java.net.InetAddress;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 import java.net.MulticastSocket;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 import myVncProxy.TextBox;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 public class GetBroadCast implements Runnable {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 static final String McastAddr = "224.0.0.1";
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 static final int Port = 8183;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 static final int BufSize = 1024;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 private byte[] buf = new byte[BufSize];
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 private byte[] resorve = new byte[BufSize];
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 private ByteArrayInputStream inputStream;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 private boolean stopFlag = false;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 private VncProxyService vps;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 private BroadCast bCast;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 public GetBroadCast(VncProxyService _vps){
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 vps = _vps;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 bCast = new BroadCast(vps.rfb.acceptPort+"*"+vps.host+"*"
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 +vps.rfb.desktopName+"*"+vps.acc.getMyAddress()+"*");
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 private void getData() {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 try {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 InetAddress mAddr = InetAddress.getByName(McastAddr);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 MulticastSocket soc = new MulticastSocket(Port);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 DatagramPacket recvPacket = new DatagramPacket(buf, BufSize);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 soc.joinGroup(mAddr);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 bCast.createSocket();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 while (true) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 soc.receive(recvPacket);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 inputStream = new ByteArrayInputStream(recvPacket.getData());
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 inputStream.read(resorve);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 if("who".equals(castString(resorve))){
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 for(int i=0;i<4;i++){
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 bCast.sendData();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 } catch (IOException e) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 e.printStackTrace();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 private int castInt(byte[] a) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 int value = 0;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 ByteArrayInputStream bais = new ByteArrayInputStream(a);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 DataInputStream dis = new DataInputStream(bais);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 try {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 value = dis.readInt();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 } catch (IOException e) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 System.out.println(value);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 return value;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 private String castString(byte[] a) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 String recover = new String(a);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 recover = recover.replace("¥n", "");
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 recover = recover.trim();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 System.out.println(recover);
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 return recover;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 @Override
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 public void run() {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 getData();
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 public void setStopFlag(boolean stopFlag) {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 this.stopFlag = stopFlag;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 public boolean isStopFlag() {
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 return stopFlag;
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 }
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
545183e14d4e add GetBroadCast.java
Yu Taninari <you@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 }