Mercurial > hg > trac > TreeVNC > TreeVNC
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(); + } + + } /**