Mercurial > hg > Applications > TreeVNC
view src/main/java/jp/ac/u_ryukyu/treevnc/CreateConnectionParam.java @ 92:ca39d762805e
NoConnection implies no needReconnection Viewer,
reconnectionWaiter clean up(waitReply),
sendReconnection clean up(createSocketAndSend).
author | oc |
---|---|
date | Mon, 19 May 2014 18:48:35 +0900 |
parents | 9a485070f831 |
children | 32c6563492f3 |
line wrap: on
line source
package jp.ac.u_ryukyu.treevnc; import java.util.logging.Logger; import com.glavsoft.viewer.ViewerImpl; import jp.ac.u_ryukyu.treevnc.client.EchoClient; import jp.ac.u_ryukyu.treevnc.client.GetHostClient; import jp.ac.u_ryukyu.treevnc.server.GetBroadCastProxy; public class CreateConnectionParam { private String hostName; private int portNumber; private MyRfbProto rfb; private final Logger logger; public CreateConnectionParam(MyRfbProto rfb) { this.rfb = rfb; logger = Logger.getLogger(getClass().getName()); } public void communicationToProxy() { GetHostClient getBcast = new GetHostClient(GetBroadCastProxy.MULTICAST_FIND_TREEVNC_ROOT); getBcast.getHost(); portNumber = 0; do { try { Thread runBcast = new Thread(getBcast, "TreeVNC-root-finder"); runBcast.start(); hostName = getBcast.textAddress(); // wait for root reply to our broadcast portNumber = Integer.parseInt(getBcast.textPort()); } catch (Exception e) { logger.info("can't get parent address or port"); } getBcast.interrupt(); } while ( portNumber == 0); } public void createConnectionParam(ViewerImpl v) { EchoClient echo = new EchoClient(hostName, 9999); rfb.setEcho(echo); rfb.setProxyAddr(hostName); echo.getParentName(); v.setConnectionParam(echo.getParentsAddress(), portNumber); runAcceptThread(); } private void runAcceptThread() { Thread accThread = new Thread(new AcceptThread(rfb, portNumber)); accThread.start(); } public void setHostName(String _hostName) { hostName = _hostName; portNumber = 5999; } }