# HG changeset patch # User one # Date 1321354530 -32400 # Node ID e7cc8bcf261d1b3ef3c40f683d645d029057ab79 # Parent 00e031baf06501d45063ee160c04be03262a50b1 add broadcast.java diff -r 00e031baf065 -r e7cc8bcf261d src/myVncProxy/AcceptClient.java --- a/src/myVncProxy/AcceptClient.java Mon Nov 07 12:48:16 2011 +0900 +++ b/src/myVncProxy/AcceptClient.java Tue Nov 15 19:55:30 2011 +0900 @@ -53,11 +53,10 @@ //lost time send to not leader children replyNormalChildren(os, is, port); line = null; - } else { + } else if (line!=null){ //connection First time if(checkAddress(line)){ - outputStream(os, ls.getFirst(),"0", - "0", "0"); + outputStream(os, ls.getFirst(),"0","0", "0"); }else { if(replyCreateTree(os, port, line)) { break; @@ -137,8 +136,13 @@ } } - private String getMyAddress () throws UnknownHostException { - InetAddress addr = InetAddress.getLocalHost(); + String getMyAddress () { + InetAddress addr = null; + try { + addr = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } return new String(addr.getHostAddress()); } diff -r 00e031baf065 -r e7cc8bcf261d src/myVncProxy/BroadCast.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/myVncProxy/BroadCast.java Tue Nov 15 19:55:30 2011 +0900 @@ -0,0 +1,59 @@ +package myVncProxy; + +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.MulticastSocket; +import java.net.UnknownHostException; + +public class BroadCast implements Runnable { + final int BUFSIZE = 1024; + final String MCASTADDR = "224.0.0.1"; + final int PORT = 8182; + private byte[] buf = new byte[BUFSIZE]; + private InetAddress mAddr; + private MulticastSocket soc; + private String str; + + public BroadCast(String _str) { + str = _str; + } + + private void createSocket() throws IOException { + mAddr = InetAddress.getByName(MCASTADDR); + soc = new MulticastSocket(); + soc.setTimeToLive(1); + } + + private void sendData() { + buf = str.getBytes(); + //System.out.println("strlen"+str.length()); + //System.out.println("str"+str); + DatagramPacket sendPacket = new DatagramPacket(buf, str.length(), + mAddr, PORT); + try { + soc.send(sendPacket); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + public void run() { + try { + createSocket(); + while (true) { + sendData(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + System.out.println(e); + } + } + } catch (UnknownHostException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff -r 00e031baf065 -r e7cc8bcf261d src/myVncProxy/MyRfbProto.java --- a/src/myVncProxy/MyRfbProto.java Mon Nov 07 12:48:16 2011 +0900 +++ b/src/myVncProxy/MyRfbProto.java Tue Nov 15 19:55:30 2011 +0900 @@ -516,12 +516,13 @@ } void printFramebufferUpdate() { - + /* System.out.println("messageType=" + messageType); System.out.println("rectangles=" + rectangles); System.out.println("encoding=" + encoding); System.out.println("rectX = "+rectX+": rectY = "+rectY); System.out.println("rectW = "+rectW+": rectH = "+rectH); + */ switch (encoding) { case RfbProto.EncodingRaw: System.out.println("rectW * rectH * 4 + 16 =" + rectW * rectH * 4 diff -r 00e031baf065 -r e7cc8bcf261d src/myVncProxy/VncProxyService.java --- a/src/myVncProxy/VncProxyService.java Mon Nov 07 12:48:16 2011 +0900 +++ b/src/myVncProxy/VncProxyService.java Tue Nov 15 19:55:30 2011 +0900 @@ -30,10 +30,12 @@ Thread rfbThread; Thread accThread; Thread clientThread; + private Thread bCast; CreateThread geth; AcceptClient acc; private AcceptThread acceptThread; private TextBox getHost; + private BroadCast broadCast; Frame vncFrame; Container vncContainer; @@ -160,6 +162,10 @@ rfbThread = new Thread(this); acceptThread = new AcceptThread(rfb, 5999); accThread = new Thread(acceptThread); + broadCast = new BroadCast(rfb.acceptPort+"*"+host+"*" + +rfb.desktopName+"*"+acc.getMyAddress()+"*"); + bCast = new Thread(broadCast); + //broadCast.udpTransmission(rfb.acceptPort+"-"+host+"-"+rfb.desktopName); //} /* * if(url != null) { try { client = new XmlRpc(blogId, wpUsername, @@ -180,7 +186,7 @@ public void changeInit() throws Exception { VncProxyService v = new VncProxyService(); v.changeFlag = true; - // v.checkArgs(argv); + //v.checkArgs(argv); v.mainArgs = new String[0]; v.host = host; @@ -188,7 +194,7 @@ v.start_threads(); //Thread.sleep(10000); - rfb.is = v.rfb.is; + //rfb.is = v.rfb.is; //rfb.os = v.rfb.os; //rfb.initData = v.rfb.initData; @@ -241,6 +247,7 @@ public void start_threads() { rfbThread.start(); accThread.start(); + bCast.start(); rfb.requestThreadStart(); } @@ -441,8 +448,8 @@ default: throw new Exception("Unknown authentication scheme " + authType); } - rfb.is = testrfb.is; - rfb.os = testrfb.os; + //rfb.is = testrfb.is; + //rfb.os = testrfb.os; //rfb = testrfb; } @@ -741,8 +748,12 @@ getHost = new TextBox(this); port = 5900; } - - //getHost.changeHost(); + if(getHost==null){ + getHost = new TextBox(this); + getHost.changeHost(); + } else { + getHost.changeHost(); + } // Read "ENCPASSWORD" or "PASSWORD" parameter if specified. // readPasswordParameters();