Mercurial > hg > RemoteEditor > REPSessionManager
changeset 17:806e34a6fecd
*** empty log message ***
author | pin |
---|---|
date | Fri, 02 Nov 2007 15:27:31 +0900 |
parents | cb482350a1aa |
children | b429fe1e15a8 |
files | rep/REPCommand.java rep/REPPacketReceive.java rep/SessionManager.java |
diffstat | 3 files changed, 38 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/rep/REPCommand.java Fri Nov 02 14:57:10 2007 +0900 +++ b/rep/REPCommand.java Fri Nov 02 15:27:31 2007 +0900 @@ -12,6 +12,8 @@ public String string; private int textsiz; + String host; + int port; public REPCommand(int cmd,int sid,int eid, int seq, int lineno, int textsiz, String string) { this.cmd = cmd; @@ -48,4 +50,14 @@ string = string2; } + public void setHost(String host) { + // TODO Auto-generated method stub + this.host = host; + } + + public void setPort(int port) { + // TODO Auto-generated method stub + this.port = port; + } + }
--- a/rep/REPPacketReceive.java Fri Nov 02 14:57:10 2007 +0900 +++ b/rep/REPPacketReceive.java Fri Nov 02 15:27:31 2007 +0900 @@ -9,9 +9,9 @@ public class REPPacketReceive { SocketChannel socketchannel; - private int HEADER_SIZE = 24; - private String host; - private int port; + private final int HEADER_SIZE = 24; + //private String host; + //private int port; public REPPacketReceive(SocketChannel sc){ socketchannel = sc; @@ -76,10 +76,12 @@ private void getSocket(REPCommand command) { String string = command.string; StringTokenizer st2 = new StringTokenizer(string, ":"); - host = st2.nextToken(); + String host = st2.nextToken(); String portstring = st2.nextToken(); - port = Integer.parseInt(portstring); + int port = Integer.parseInt(portstring); int socketInfoLength = host.length() + portstring.length() + 2; command.setString(string.substring(0, string.length() - socketInfoLength)); + command.setHost(host); + command.setPort(port); } }
--- a/rep/SessionManager.java Fri Nov 02 14:57:10 2007 +0900 +++ b/rep/SessionManager.java Fri Nov 02 15:27:31 2007 +0900 @@ -32,6 +32,8 @@ private SessionManagerGUI sessionmanagerGUI; private Selector selector; private SessionManagerList smList; + private String myHost; + private int myPort; //private SocketChannel sessionchannel; //private boolean co; public SessionManager(int port) { @@ -118,18 +120,9 @@ if(repCmd == null) return; switch(repCmd.cmd){ case REP.SMCMD_JOIN: - int eid = sessionlist.getNumberOfEditor(); //eidを取得 - sessionmanagerGUI.setComboEditor(eid, channel); //ComboBoxにEditorを追加 - repCmd.setEID(eid); //eidを決定して、 - //repCmd.setCMD(repCmd.cmd + 1); //ACKを返す - repCmd.setCMD(REP.SMCMD_JOIN_ACK); - repCmd.string = sessionlist.getSessionList(); //Session一覧を - REPPacketSend repSend = new REPPacketSend(channel); //Editor側へ送信 - repSend.send(repCmd); join_ack(channel, repCmd); break; case REP.SMCMD_JOIN_ACK: - break; case REP.SMCMD_PUT: int sessionID = sessionlist.addSession(channel, repCmd.string); //SIDを取得 @@ -152,27 +145,24 @@ case REP.SMCMD_SELECT_ACK: break; case REP.SMCMD_SESSION: - //repCmd.setCMD(REP.SMCMD_SESSION_ACK); - //sessionlist.addSessionManager(channel, repCmd); break; case REP.SMCMD_SM_JOIN: + myHost = repCmd.host; + myPort = repCmd.port; sm_join_ack(channel, repCmd); break; case REP.SMCMD_SM_JOIN_ACK: smList.add(channel); //SessionManagerのリストへ追加 - break; case REP.SMCMD_UPDATE: int sessionID2 = sessionlist.addSession(channel, repCmd.string); //Sessionを作成 sessionlist.addEditor(channel, sessionID2, repCmd); - //sessionlist.sendAddedSession(repCmd); sessionmanagerGUI.setComboSession(sessionID2, repCmd.string); //ComboBoxにSessionを追加 break; case REP.SMCMD_UPDATE_ACK: - // break; case REP.REPCMD_READ: - sessionlist.sendCmd(channel, repCmd); + //sessionlist.sendCmd(channel, repCmd); break; default: //sessionlist.sendCmd(channel, repCmd); @@ -183,11 +173,9 @@ } private void sm_join_ack(SocketChannel channel, REPCommand repCmd) { - //SocketAddress address = channel.socket().getRemoteSocketAddress(); String socketstring = getSocketString(channel); System.out.println(socketstring); smList.add(channel); //SessionManagerのリストへ追加 - //repCmd.setCMD(repCmd.cmd + 1); repCmd.setCMD(REP.SMCMD_SM_JOIN_ACK); repCmd.setString(repCmd.string + ":" + socketstring); REPPacketSend repSend4 = new REPPacketSend(channel); @@ -195,8 +183,20 @@ } private void join_ack(SocketChannel channel, REPCommand repCmd) { - String dis_host = channel.socket().getRemoteSocketAddress().toString(); - System.out.println(dis_host); + int eid = sessionlist.getNumberOfEditor(); //eidを取得 + sessionmanagerGUI.setComboEditor(eid, channel); //ComboBoxにEditorを追加 + repCmd.setEID(eid); //eidを決定して、 + repCmd.setCMD(REP.SMCMD_JOIN_ACK); + repCmd.string = sessionlist.getSessionList(); //Session一覧を + + String string = getSocketString(channel); + StringTokenizer stn = new StringTokenizer(string, ":"); + String host = stn.nextToken(); + String port = stn.nextToken(); + repCmd.setString(repCmd.string + ":" + myHost + ":" + port); + + REPPacketSend repSend = new REPPacketSend(channel); //Editor側へ送信 + repSend.send(repCmd); } public static void main(String[] args) throws InterruptedException, IOException {