# HG changeset patch # User Shinji KONO # Date 1550812779 -32400 # Node ID c4d1a275b7d532bf0576c249662771e8f0f8b989 # Parent 8401dbe0d58363e2770dcf542a8aed9c35877926 fx diff -r 8401dbe0d583 -r c4d1a275b7d5 src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java --- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Fri Feb 22 09:34:10 2019 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Fri Feb 22 14:19:39 2019 +0900 @@ -142,6 +142,12 @@ break; default: logger.severe("Unsupported server message. Id = " + messageId); + for(int i = 0; (i < 20) && reader.available()>0; i++) { + byte[] x = {0}; + reader.readBytes(x); + System.out.print(" "+x[0]); + } + System.out.println(); } } catch (TransportException e) { System.out.println(e.getMessage()); diff -r 8401dbe0d583 -r c4d1a275b7d5 src/main/java/jp/ac/u_ryukyu/treevnc/MulticastQueue.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/MulticastQueue.java Fri Feb 22 09:34:10 2019 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/MulticastQueue.java Fri Feb 22 14:19:39 2019 +0900 @@ -1,6 +1,7 @@ package jp.ac.u_ryukyu.treevnc; import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.concurrent.CountDownLatch; public class MulticastQueue diff -r 8401dbe0d583 -r c4d1a275b7d5 src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Fri Feb 22 09:34:10 2019 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Fri Feb 22 14:19:39 2019 +0900 @@ -719,7 +719,7 @@ b.limit(dataLen - headerLen); bufs.add(b); byte[] bytes1 = b.array(); - int headerPos = 0; int len2 = b.limit(); + int headerPos = 4; int len2 = b.limit(); System.out.println(" bytes: " + bytes1[headerPos + 20] + ", " + bytes1[headerPos + 21] + ", " + bytes1[headerPos + 22] + ", " + bytes1[headerPos + 23]); System.out.println(" bytes: " + bytes1[len2 - 4] + ", " + bytes1[len2 - 3] + ", " + bytes1[len2 - 2] + ", " + bytes1[len2 - 1]); } @@ -787,6 +787,7 @@ c1rect.height = tiley; if (c1.remaining() < span || c1rect.x + c1rect.width + tilex >= rect.x + rect.width ) { deflater.deflate(c1, Deflater.FULL_FLUSH); + deflater.finish(); c1.flip(); System.out.println("multicastPut: " + c1rect + " length: " + (c1.remaining()-c1headerPos-header.limit())); try { @@ -813,6 +814,29 @@ c1rect.width += tilex; } + /** + * make and send frameBufferUpdateRectangle packet + * @param c1 + * @param headerPos + * @param len2 + * @param x + * @param y + * @param w + * @param h + * @throws InterruptedException + * + * [8] sequence number (if used ) + * 0 0 FRAMEBUFFEUPDATERRECTANGLE < headerPos + * 1 0 padding + * 2 int16 count of frame + * 4 int16 x + * 6 int16 y + * 8 int16 w + * 10 int16 h + * 12 int32 encoding type + * 16 [int32] datalen if zcompressed + * 20 compressedData + */ private void writeUpdateRectangleWithHeader(ByteBuffer c1, int headerPos, int len2, int x, int y, int w, int h) throws InterruptedException { deflater.reset(); @@ -829,8 +853,9 @@ } else multicastqueue.waitput(bufs); byte[] bytes = c1.array(); + len2 = c1.remaining(); System.out.println(" bytes: " + bytes[headerPos + 20] + ", " + bytes[headerPos + 21] + ", " + bytes[headerPos + 22] + ", " + bytes[headerPos + 23]); - System.out.println(" bytes: " + bytes[headerPos+ len2 - 4] + ", " + bytes[headerPos+len2 - 3] + ", " + bytes[headerPos+len2 - 2] + ", " + bytes[headerPos+len2 - 1]); + System.out.println(" bytes: " + bytes[len2 - 4] + ", " + bytes[len2 - 3] + ", " + bytes[len2 - 2] + ", " + bytes[len2 - 1]); } public LinkedList createCheckDelayHeader(LinkedList checkDelay, ByteBuffer header) {