changeset 106:df9986f30d09

add getbroadcast.java
author one
date Tue, 15 Nov 2011 19:54:48 +0900
parents 3599045a7312
children 40efe6c25ff6
files src/myVncClient/GetBroadCast.java
diffstat 1 files changed, 76 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /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;
+	}
+
+}