Mercurial > hg > Applications > TightVNC_orginal
diff src/main/java/ac/ryukyu/treevnc/client/MyRfbProtoClient.java @ 3:e7ce2b2ffed8
add and modify files
author | Yu Taninari <you@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 24 Jul 2012 15:46:36 +0900 |
parents | |
children | b32668b8e83c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/ac/ryukyu/treevnc/client/MyRfbProtoClient.java Tue Jul 24 15:46:36 2012 +0900 @@ -0,0 +1,98 @@ +package ac.ryukyu.treevnc.client; + +import java.io.BufferedInputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetAddress; +import java.net.Socket; +import java.nio.ByteBuffer; + + + +import com.glavsoft.exceptions.TransportException; +import com.glavsoft.transport.Reader; +import com.glavsoft.viewer.ContainerManager; +import com.glavsoft.viewer.swing.ParametersHandler.ConnectionParams; + +public class MyRfbProtoClient { + private Reader reader; + private EchoClient echoValue = new EchoClient(); + private String host,treenum,parent,pHost,leaderflag; + private int echoPort,port; + Socket clientSocket,sock; + DataInputStream is; + OutputStream os; + private ContainerManager containerManager; + + + + public MyRfbProtoClient(Reader reader,String host,String port) { + this.reader = reader; + } + + public void setParam(ConnectionParams connectionParams) { + pHost = connectionParams.hostName; + echoPort = connectionParams.portNumber; + } + + public boolean readProxyFlag() throws TransportException { + int flag = reader.readUInt8(); + if(flag == 1) + return true; + else + return false; + } + + public byte[] readEchoPort() throws Exception { + byte[] b = new byte[4]; + reader.readBytes(b, 0, b.length); + //readFully(b); + return b; + } + + public void getParentName() { + if (echoValue == null) { + + if (clientSocket == null) { + + // echo = new EchoClient(pHost, this); + echoValue = new EchoClient(pHost, echoPort); + echoValue.openport(); + + echoValue = echoValue.requestHostName("1"); + } else { + echoValue = new EchoClient(); + echoValue = echoValue.Interruption(clientSocket); + } + } + // proxyからの返信で接続先を決定する + host = echoValue.responseLine; + parent = echoValue.parent; + if (echoValue.treenum != null) { + treenum = echoValue.treenum; + } else { + treenum = echoValue.treenum; + } + + if (echoValue.leaderflag != null) { + leaderflag = echoValue.leaderflag; + } else { + leaderflag = echoValue.leaderflag; + } + } + + int castByteInt(byte[] b) { + ByteBuffer bb = ByteBuffer.wrap(b); + int value = bb.getInt(); + return value; + } + + Socket changeParent(String host, int port) throws IOException { + sock = new Socket(host, port); + return sock; + } + +}