# HG changeset patch # User one # Date 1321354488 -32400 # Node ID df9986f30d09c4b8c81602963a14c49dd521e8d4 # Parent 3599045a7312c31d802f0085fdf946aa6cb9f4d8 add getbroadcast.java diff -r 3599045a7312 -r df9986f30d09 src/myVncClient/GetBroadCast.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/myVncClient/GetBroadCast.java Tue Nov 15 19:54:48 2011 +0900 @@ -0,0 +1,76 @@ +package myVncClient; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.net.DatagramPacket; +import java.net.InetAddress; +import java.net.MulticastSocket; + +public class GetBroadCast implements Runnable { + static final String McastAddr = "224.0.0.1"; + static final int Port = 8182; + static final int BufSize = 1024; + private byte[] buf = new byte[BufSize]; + private byte[] resorve = new byte[BufSize]; + private ByteArrayInputStream inputStream; + private boolean stopFlag = false; + TextBox text = new TextBox(); + + private void getData() { + try { + InetAddress mAddr = InetAddress.getByName(McastAddr); + MulticastSocket soc = new MulticastSocket(Port); + DatagramPacket recvPacket = new DatagramPacket(buf, BufSize); + soc.joinGroup(mAddr); + while (!(isStopFlag())) { + soc.receive(recvPacket); + inputStream = new ByteArrayInputStream(recvPacket.getData()); + inputStream.read(resorve); + String temp = text.splitString(castString(resorve)); + if(temp!=null){ + text.checkBox(temp); + } + } + text.setButton(); + text.visible(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + private int castInt(byte[] a) { + int value = 0; + ByteArrayInputStream bais = new ByteArrayInputStream(a); + DataInputStream dis = new DataInputStream(bais); + try { + value = dis.readInt(); + } catch (IOException e) { + } + System.out.println(value); + return value; + } + + private String castString(byte[] a) { + String recover = new String(a); + recover = recover.replace("¥n", ""); + recover = recover.trim(); + System.out.println(recover); + return recover; + } + + + @Override + public void run() { + getData(); + } + + public void setStopFlag(boolean stopFlag) { + this.stopFlag = stopFlag; + } + + public boolean isStopFlag() { + return stopFlag; + } + +}