Mercurial > hg > RemoteEditor > REPSessionManager
diff rep/SessionManager.java @ 74:391d44c94799
*** empty log message ***
author | pin |
---|---|
date | Sun, 25 Nov 2007 02:26:23 +0900 |
parents | 4d887f38284b |
children | a636b651dbce |
line wrap: on
line diff
--- a/rep/SessionManager.java Sat Nov 17 06:38:33 2007 +0900 +++ b/rep/SessionManager.java Sun Nov 25 02:26:23 2007 +0900 @@ -209,6 +209,12 @@ break; case REP.SMCMD_SM_JOIN: + myHost = getHostName(channel); + if(myHost.compareTo(repCmd.string) > 0){ + + }else if(myHost.compareTo(repCmd.string) < 0){ + isMaster = false; + } if(isMaster){ smList.add(channel); repCmd.setCMD(REP.SMCMD_SM_JOIN_ACK); @@ -349,12 +355,14 @@ //REPCommand sm_join_com = REPCommand.SMCMD_SESSION_JOIN; //String socketString = getSocketString(sessionchannel); //sm_join_com.setString(sm_join_com.string + ":" + socketString); - SessionXMLEncoder encoder = new SessionXMLEncoder(sessionlist.getList()); +// SessionXMLEncoder encoder = new SessionXMLEncoder(sessionlist.getList()); - REPCommand comm = new REPCommand(); - comm.setCMD(REP.SMCMD_SM_JOIN); - comm.setString(encoder.sessionListToXML()); - send.send(comm); + REPCommand command = new REPCommand(); + command.setCMD(REP.SMCMD_SM_JOIN); + myHost = getHostName(sessionchannel); + command.setString(myHost); + //command.setString(encoder.sessionListToXML()); + send.send(command); //send.send(REPCommand.SMCMD_SESSION_JOIN); isMaster = false; @@ -365,6 +373,12 @@ } } + private String getHostName(SocketChannel channel) { + String host = null; + host = channel.socket().getLocalAddress().getHostName(); + return host; + } + private String getSocketString(SocketChannel sessionchannel) { SocketAddress socket = sessionchannel.socket().getRemoteSocketAddress(); //String inetAddressString = sessionchannel.socket().getInetAddress().toString();