Mercurial > hg > Members > nobuyasu > tightVNCClient
diff src/myVncClient/MyRfbProto.java @ 72:ec66d1d4dca0
modify MyVncClient.connectAndAuthenticate()
author | e085711 |
---|---|
date | Mon, 29 Aug 2011 03:14:53 +0900 |
parents | f6cb1edc2036 |
children | 83acdeca0539 |
line wrap: on
line diff
--- a/src/myVncClient/MyRfbProto.java Mon Aug 29 01:39:15 2011 +0900 +++ b/src/myVncClient/MyRfbProto.java Mon Aug 29 03:14:53 2011 +0900 @@ -60,6 +60,8 @@ private LinkedList<Socket> cliListTmp; private LinkedList<Socket> cliList; boolean createBimgFlag; + //override + InterfaceForViewer viewer; ExecutorService executor; @@ -84,7 +86,7 @@ // executor = Executors.newCachedThreadPool(); // executor = Executors.newSingleThreadExecutor(); } - + MyRfbProto(String h, int p) throws IOException { super(h, p); cliList = new LinkedList<Socket>(); @@ -94,6 +96,37 @@ // executor = Executors.newCachedThreadPool(); // executor = Executors.newSingleThreadExecutor(); } + + + void readVersionMsg() throws Exception { + + byte[] b = new byte[12]; + + readFully(b); + + if ((b[0] != 'R') || (b[1] != 'F') || (b[2] != 'B') || (b[3] != ' ') + || (b[4] < '0') || (b[4] > '9') || (b[5] < '0') || (b[5] > '9') + || (b[6] < '0') || (b[6] > '9') || (b[7] != '.') + || (b[8] < '0') || (b[8] > '9') || (b[9] < '0') || (b[9] > '9') + || (b[10] < '0') || (b[10] > '9') || (b[11] != '\n')) { + throw new Exception("Host " + host + " port " + port + + " is not an RFB server"); + } + + serverMajor = (b[4] - '0') * 100 + (b[5] - '0') * 10 + (b[6] - '0'); + serverMinor = (b[8] - '0') * 100 + (b[9] - '0') * 10 + (b[10] - '0'); + + if (serverMajor < 3) { + throw new Exception( + "RFB server does not support protocol version 3"); + } + + if (serverMinor == 998) { + + } + + } + void changeParent(String h, int p) throws IOException { host = h; port = p;