diff src/main/java/jp/ac/u_ryukyu/treevnc/client/GetHostClient.java @ 125:32c6563492f3

add vnc protocol command sender.
author oc
date Thu, 05 Jun 2014 18:30:45 +0900
parents 233e94a7b5ed
children 775ce6a14f89
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/GetHostClient.java	Thu Jun 05 17:01:34 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/GetHostClient.java	Thu Jun 05 18:30:45 2014 +0900
@@ -9,7 +9,10 @@
 import java.net.MulticastSocket;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 
+import com.glavsoft.rfb.protocol.ProtocolContext;
 import com.glavsoft.viewer.swing.ConnectionParams;
 
 import jp.ac.u_ryukyu.treevnc.server.GetBroadCastProxy;
@@ -28,6 +31,10 @@
     private TextBoxClient text = new TextBoxClient();
     private String proxyAddr;
 
+    /**
+     * To find vnc root, a client sends a multicast packet. 
+     * @param _str
+     */
 	public GetHostClient(String _str) {
 		str = _str;
 	}
@@ -72,6 +79,25 @@
 		sendData();
 	}
 
+	public void findRoot() {
+		ByteBuffer buf = ByteBuffer.allocate(12);
+		buf.order(ByteOrder.BIG_ENDIAN);
+		buf.put((byte) ProtocolContext.FIND_ROOT);
+		buf.put((byte) 0);
+		buf.put((byte) 0);
+		buf.put((byte) 0);
+		buf.putInt(4); // length
+		buf.putInt(port);
+		buf.flip();
+
+		DatagramPacket sendPacket = new DatagramPacket(buf.array(), buf.limit(), mAddr, ConnectionParams.DEFAULT_VNC_ROOT_FINDER);
+		try {
+			soc.send(sendPacket);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		
+	}
 
     
     /**