view src/main/java/jp/ac/u_ryukyu/treevnc/client/ReconnectionWaiter.java @ 125:32c6563492f3

add vnc protocol command sender.
author oc
date Thu, 05 Jun 2014 18:30:45 +0900
parents 918dc3ee1c79
children
line wrap: on
line source

package jp.ac.u_ryukyu.treevnc.client;

import java.io.IOException;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;


/**
 *  Wait for reconnection message.
 *  Close current application and reopen it.
 */
public class ReconnectionWaiter extends Thread {
	private TreeVncProtocol echo;
	
	public ReconnectionWaiter(String treenum, TreeVncProtocol echo) {
		this.echo = echo;
	}

	
	public void run() {
		ServerSocket echoServer = null;
		try {
			echoServer = new ServerSocket(10001);
			while (true) {
				Socket clientSocket = echoServer.accept();
				if (clientSocket != null) {
					echo.client.setTeminationType(true);
					echo.client.closeApp();
					echo.client.setSocket(echo.createSocketForClient(clientSocket,true));
					echo.client.run();
					clientSocket.close();
				}
			}
		} catch (BindException e) {
			return;
		} catch (IOException e) {
			System.out.println(e);
		} finally {
			try {
				if (echoServer != null)
					echoServer.close();
			} catch (IOException e) {
				return;
			}
		}
	}
}