comparison src/main/java/jp/ac/u_ryukyu/treevnc/BroadcastRFBListener.java @ 521:3fc0fedbc3fd

try catch in loop
author mir3636
date Fri, 22 Feb 2019 16:07:03 +0900
parents 3a9dadc8821f
children dca83cc39438
comparison
equal deleted inserted replaced
520:3a9dadc8821f 521:3fc0fedbc3fd
42 try { 42 try {
43 soc.joinGroup(InetAddress.getByName(McastAddr)); 43 soc.joinGroup(InetAddress.getByName(McastAddr));
44 } catch (SocketException e) { 44 } catch (SocketException e) {
45 System.out.println("join to " + Ipv4McastAddr + " failed."); 45 System.out.println("join to " + Ipv4McastAddr + " failed.");
46 } 46 }
47 try { 47 /*try {
48 soc.joinGroup(InetAddress.getByName(Ipv6McastAddr)); 48 soc.joinGroup(InetAddress.getByName(Ipv6McastAddr));
49 } catch (SocketException e) { 49 } catch (SocketException e) {
50 System.out.println("join to " + Ipv6McastAddr + " failed."); 50 System.out.println("join to " + Ipv6McastAddr + " failed.");
51 } 51 }*/
52 return soc; 52 return soc;
53 } 53 }
54 54
55 /** 55 /**
56 * To find TreeVNC root, a client sends me a multicast, reply our address to him. 56 * To find TreeVNC root, a client sends me a multicast, reply our address to him.
57 * It contains a port to receive, so multiple TREEVNC clients can run on a PC. 57 * It contains a port to receive, so multiple TREEVNC clients can run on a PC.
58 */ 58 */
59 private void rfbBroadcastLoop() { 59 private void rfbBroadcastLoop() {
60 byte[] buf = new byte[BufSize]; 60 byte[] buf = new byte[BufSize];
61 try {
62 61
63 DatagramPacket recvPacket = new DatagramPacket(buf, BufSize); 62 DatagramPacket recvPacket = new DatagramPacket(buf, BufSize);
64 while (!stopFlag) { 63 while (!stopFlag) {
64 try {
65 soc.receive(recvPacket); 65 soc.receive(recvPacket);
66 String hostname = recvPacket.getAddress().getHostAddress(); 66 String hostname = recvPacket.getAddress().getHostAddress();
67 byte[] reply = recvPacket.getData(); 67 byte[] reply = recvPacket.getData();
68 int len = recvPacket.getLength(); 68 int len = recvPacket.getLength();
69 boolean isTreeRoot = rfb.isTreeManager(); 69 boolean isTreeRoot = rfb.isTreeManager();
70 if (isTreeRoot && receiverTask != null ) { 70 if (isTreeRoot && receiverTask != null) {
71 receiverTask.setReader(new Reader(new ByteArrayInputStream(reply))); 71 receiverTask.setReader(new Reader(new ByteArrayInputStream(reply)));
72 if (receiverTask.getMessageId() == FRAMEBUFFER_UPDATE) { 72 if (receiverTask.getMessageId() == FRAMEBUFFER_UPDATE) {
73 receiverTask.framebufferUpdateMessage(); 73 receiverTask.framebufferUpdateMessage();
74 } 74 }
75 } 75 }
76 } catch (Exception e) {
77 System.out.println("broadcast-rfb-listener :" + e.getMessage());
76 } 78 }
77 } catch (Exception e) {
78 System.out.println("tree-root-find-listener :" + e.getMessage());
79 } 79 }
80 } 80 }
81 81
82 public void multicastUpdateRectangle(ByteBuffer buf) { 82 public void multicastUpdateRectangle(ByteBuffer buf) {
83 83
84 try { 84 /*try {
85 DatagramPacket sendPacket = new DatagramPacket(buf.array 85 DatagramPacket sendPacket = new DatagramPacket(buf.array
86 (), buf.limit(), InetAddress.getByName(TreeRootFinderListener.Ipv6McastAddr), ConnectionParams.DEFAULT_VNC_BROADCAST); 86 (), buf.limit(), InetAddress.getByName(TreeRootFinderListener.Ipv6McastAddr), ConnectionParams.DEFAULT_VNC_BROADCAST);
87 soc.send(sendPacket); 87 soc.send(sendPacket);
88 } catch (IOException e) { 88 } catch (IOException e) {
89 System.out.println("cannot send UpdateRectangle."); 89 System.out.println("cannot send UpdateRectangle.");
90 e.printStackTrace(); 90 e.printStackTrace();
91 } 91 }*/
92 92
93 try { 93 try {
94 DatagramPacket sendPacket1 = new DatagramPacket(buf.array(), buf.limit(), InetAddress.getByName(TreeRootFinderListener.Ipv4McastAddr), ConnectionParams.DEFAULT_VNC_BROADCAST); 94 DatagramPacket sendPacket1 = new DatagramPacket(buf.array(), buf.limit(), InetAddress.getByName(TreeRootFinderListener.Ipv4McastAddr), ConnectionParams.DEFAULT_VNC_BROADCAST);
95 soc.send(sendPacket1); 95 soc.send(sendPacket1);
96 } catch (IOException e) { 96 } catch (IOException e) {