[Javanetsim-cvs] javaNetSim/core/protocolsuite/tcp_ip Application.java, 1.19, 1.20 Echo.java, 1.25,
Status: Beta
Brought to you by:
darkkey
From: QweR <qw...@us...> - 2007-09-23 20:24:48
|
Update of /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv22036/core/protocolsuite/tcp_ip Modified Files: Application.java Echo.java Echo_tcp.java ExternalProxyApp.java PosixTelnetClient.java SNMP.java TCP_session.java Tcp.java Telnet_client.java Telnet_server.java socketLayer.java Log Message: opening/closing TCP connection works on good line Index: Telnet_client.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Telnet_client.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Telnet_client.java 22 Sep 2007 23:06:44 -0000 1.11 --- Telnet_client.java 23 Sep 2007 20:24:43 -0000 1.12 *************** *** 139,143 **** } ! public void OnError(int sock){ } --- 139,143 ---- } ! public void OnError(int sock, int error){ } Index: socketLayer.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/socketLayer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** socketLayer.java 22 Sep 2007 23:06:45 -0000 1.4 --- socketLayer.java 23 Sep 2007 20:24:43 -0000 1.5 *************** *** 37,41 **** } ! public void bind(int sock, String srcIP, int srcPort) throws LowLinkException, TransportLayerException{ jnSocket jnsock = get_socket(sock); jnsock.src_IP = srcIP; --- 37,41 ---- } ! public void bind(int sock, String srcIP, int srcPort) throws TransportLayerException{ jnSocket jnsock = get_socket(sock); jnsock.src_IP = srcIP; *************** *** 52,66 **** } - public void listen(int sock) throws TransportLayerException{ - jnSocket jnsock = get_socket(sock); - jnsock.open_state = true; - if(jnsock.type == jnsock.UDP_socket){ - mParentStack.UDP().bindPort(sock, jnsock.src_port); - } - else if(jnsock.type == jnsock.TCP_socket){ - mParentStack.TCP().bindPort(sock, jnsock.src_port); - } - } - public boolean connect(int sock, String ipaddr, int port) throws LowLinkException, CommunicationException, TransportLayerException{ boolean result = false; --- 52,55 ---- *************** *** 147,152 **** } public void free(int sock) throws TransportLayerException{ ! ((jnSocket)sockTable.get(sock)).app = null; ! ((jnSocket)sockTable.get(sock)).open_state = false; } } --- 136,150 ---- } public void free(int sock) throws TransportLayerException{ ! jnSocket jnsock = (jnSocket)sockTable.get(sock); ! jnsock.app = null; ! jnsock.open_state = false; ! if(jnsock.type == jnsock.UDP_socket){ ! mParentStack.UDP().closePort(sock); ! } ! else if(jnsock.type == jnsock.TCP_socket){ ! mParentStack.TCP().closePort(sock); ! } ! jnsock.src_port = 0; ! jnsock.src_IP = ""; } } Index: Telnet_server.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Telnet_server.java,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Telnet_server.java 22 Sep 2007 23:06:44 -0000 1.13 --- Telnet_server.java 23 Sep 2007 20:24:43 -0000 1.14 *************** *** 133,137 **** } ! public void OnError(int sock){ } --- 133,137 ---- } ! public void OnError(int sock, int error){ } Index: PosixTelnetClient.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/PosixTelnetClient.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PosixTelnetClient.java 22 Sep 2007 23:06:42 -0000 1.3 --- PosixTelnetClient.java 23 Sep 2007 20:24:43 -0000 1.4 *************** *** 144,148 **** } ! public void OnError(int sock){ } --- 144,148 ---- } ! public void OnError(int sock, int error){ } Index: Tcp.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Tcp.java,v retrieving revision 1.92 retrieving revision 1.93 diff -C2 -d -r1.92 -r1.93 *** Tcp.java 23 Sep 2007 01:49:58 -0000 1.92 --- Tcp.java 23 Sep 2007 20:24:43 -0000 1.93 *************** *** 118,124 **** mParentStack.sendPacket(packet); }catch(LowLinkException e){ ! e.toString(); }catch(CommunicationException e){ ! e.toString(); } } --- 118,124 ---- mParentStack.sendPacket(packet); }catch(LowLinkException e){ ! System.out.println(e.toString()); }catch(CommunicationException e){ ! System.out.println(e.toString()); } } *************** *** 138,164 **** mParentStack.sendPacket(rstpack); }catch(TransportLayerException e){ ! e.toString(); }catch(LowLinkException e){ ! e.toString(); }catch(CommunicationException e){ ! e.toString(); } // close seession try{ mSL.close(sock); }catch(TransportLayerException e){ ! e.toString(); } break; } case -2:{ ! mSL.get_socket(sock).app.OnError(sock); break; } case -3:{ try{ mSL.close(sock); }catch(TransportLayerException e){ ! e.toString(); } } --- 138,167 ---- mParentStack.sendPacket(rstpack); }catch(TransportLayerException e){ ! System.out.println(e.toString()); }catch(LowLinkException e){ ! System.out.println(e.toString()); }catch(CommunicationException e){ ! System.out.println(e.toString()); } // close seession try{ mSL.close(sock); + mSL.get_socket(sock).app.OnError(sock, -2); //disconnect on timeout, sending RST }catch(TransportLayerException e){ ! System.out.println(e.toString()); } break; } case -2:{ ! mSL.get_socket(sock).app.OnError(sock, -1); //connect error break; } case -3:{ try{ + removeTimer(getSession(mSL.get_socket(sock).genKey()).last_timer); + mSL.get_socket(sock).app.OnDisconnect(sock); mSL.close(sock); }catch(TransportLayerException e){ ! System.out.println(e.toString()); } } *************** *** 209,212 **** --- 212,217 ---- private int current_time = 0; private long nextTimerID = 0; + private static final boolean USE_2MSL = false; + private static final int MSL_TIME = 5000; *************** *** 262,266 **** mSL = inSL; timer=new Timer(); ! timer.schedule(new TCPTask(),TCP_TIMER_DELAY,TCP_TIMER_DELAY); } --- 267,271 ---- mSL = inSL; timer=new Timer(); ! //timer.schedule(new TCPTask(),TCP_TIMER_DELAY,TCP_TIMER_DELAY); } *************** *** 293,297 **** sessionID = (String)LocalSessions.nextElement(); Elm = getSession(sessionID); ! if ( sock == Elm.sock && Elm.sock >=0 ) { Found=true; --- 298,302 ---- sessionID = (String)LocalSessions.nextElement(); Elm = getSession(sessionID); ! if ( sock == Elm.sock && mSL.get_socket(Elm.sock).open_state ) { Found=true; *************** *** 334,338 **** int lsPort=PORT_INIT; ! if ( mSL.get_socket(sock_num).src_port == 0 ) { if (in_Port>0 && in_Port<=65535){ --- 339,343 ---- int lsPort=PORT_INIT; ! if( mSL.get_socket(sock_num).src_port == 0 ) { if (in_Port>0 && in_Port<=65535){ *************** *** 388,392 **** if (sendTCPSegment(sock, "", flags, -1, resendtimes)) { ! } else{ --- 393,397 ---- if (sendTCPSegment(sock, "", flags, -1, resendtimes)) { ! connected = true; } else{ *************** *** 423,427 **** if(Elm != null){ Elm.setState(Elm.FIN_WAIT_1); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); int resendtimes[] = {1500,3000,6000,12000,24000,48000,64000,64000,64000,64000,64000,64000,-1}; boolean flags[] = genFlags(FIN); --- 428,431 ---- *************** *** 447,452 **** int portToClose=mSL.get_socket(sock).src_port; TCP_session Elm = getSession(mSL.get_socket(sock).genKey()); ! if(portToClose!=0 && Elm!=null){ removeSession(mSL.get_socket(sock).genKey()); mSL.close(Elm.sock); --- 451,460 ---- int portToClose=mSL.get_socket(sock).src_port; TCP_session Elm = getSession(mSL.get_socket(sock).genKey()); ! if(portToClose!=0 && Elm!=null){ + TCP_session mainses = getSession(jnSocket.genTCPkey(portToClose,"0.0.0.0",0)); + if(mainses != null && mainses.getSocket() == sock){ // remove listening session on client size only + removeSession(jnSocket.genTCPkey(portToClose,"0.0.0.0",0)); + } removeSession(mSL.get_socket(sock).genKey()); mSL.close(Elm.sock); *************** *** 495,498 **** --- 503,514 ---- Elm.addSegmentToResend(tosend.get_sequence_number(),tid); } + + String pack_src = tosend.getSourceIPAddress()+":"+tosend.get_srcPort(); + String pack_dst = tosend.getDestIPAddress()+":"+tosend.get_destPort(); + String pack_flags = (tosend.get_ACK_flag()?"ACK,":"")+(tosend.get_SYN_flag()?"SYN,":"")+(tosend.get_FIN_flag()?"FIN,":"")+(tosend.get_RST_flag()?"RST":""); + System.out.println("|| <<< TCP send pack: src="+pack_src+" dst="+pack_dst+" flags="+pack_flags+" seq="+tosend.get_sequence_number()+" ack="+tosend.get_acknowledgment_number()+" data='"+tosend.getTCP_message()+"'"); + + System.out.println("|| <<<< Host="+mParentStack.getHostName()+" IP="+mParentStack.getSrcIP()+" sock="+sock+" state="+Elm.getState()); + mParentStack.sendPacket(tosend); return true; *************** *** 521,527 **** int dstPort = jnsock.dst_port; TCP_session Elm = getSession(jnsock.genKey()); - - System.out.println(" [*** TCP ***] GetTCPPacket_tosend call on host " + srcIP + "."); - System.out.println(" [*** TCP ***] Going to send SEQ=" + Elm.seq_number + " ACK=" + acknow_num + "."); int reps=50; --- 537,540 ---- *************** *** 580,585 **** // Simulation.addLayerInfo(TCP_Info); - System.out.println(" [*** TCP ***] GetTCPPacket_tosend end of call on host " + srcIP + "."); - return tosend; } --- 593,596 ---- *************** *** 593,597 **** // test if this packet is for a local Address. if(mParentStack.isInternalIP(inPacket.getDestIPAddress())){ ! // test if TCP sesssion exists on this NeworkLayerDevice TCP_session Elm; --- 604,613 ---- // test if this packet is for a local Address. if(mParentStack.isInternalIP(inPacket.getDestIPAddress())){ ! ! String pack_src = inPacket.getSourceIPAddress()+":"+inPacket.get_srcPort(); ! String pack_dst = inPacket.getDestIPAddress()+":"+inPacket.get_destPort(); ! String pack_flags = (inPacket.get_ACK_flag()?"ACK,":"")+(inPacket.get_SYN_flag()?"SYN,":"")+(inPacket.get_FIN_flag()?"FIN,":"")+(inPacket.get_RST_flag()?"RST":""); ! System.out.println("|| >>> TCP recv pack: src="+pack_src+" dst="+pack_dst+" flags="+pack_flags+" seq="+inPacket.get_sequence_number()+" ack="+inPacket.get_acknowledgment_number()+" data='"+inPacket.getTCP_message()+"'"); ! // test if TCP sesssion exists on this NeworkLayerDevice TCP_session Elm; *************** *** 599,604 **** if(Elm == null && inPacket.get_SYN_flag()){ Elm = getSession(jnSocket.genTCPkey(inPacket.get_destPort(), "0.0.0.0", 0)); - int listensock = Elm.getSocket(); if(Elm != null){ int sock = mSL.accept(Elm.getSocket(), inPacket.getSourceIPAddress(), inPacket.get_srcPort()); jnSocket jnsock = mSL.get_socket(sock); --- 615,620 ---- if(Elm == null && inPacket.get_SYN_flag()){ Elm = getSession(jnSocket.genTCPkey(inPacket.get_destPort(), "0.0.0.0", 0)); if(Elm != null){ + int listensock = Elm.getSocket(); int sock = mSL.accept(Elm.getSocket(), inPacket.getSourceIPAddress(), inPacket.get_srcPort()); jnSocket jnsock = mSL.get_socket(sock); *************** *** 618,624 **** --- 634,642 ---- } if(inPacket.get_RST_flag()){ + mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); mSL.close(Elm.getSocket()); } else{ + System.out.println("|| >>>> Host="+mParentStack.getHostName()+" IP="+mParentStack.getSrcIP()+" sock="+Elm.getSocket()+" state="+Elm.getState()); printLayerInfo("TCP packet received from "+ inPacket.getSourceIPAddress() + ":" + inPacket.get_srcPort() + " message: \"" +inPacket.getTCP_message() + "\"."); *************** *** 654,658 **** { // hm... it is bug! ! throw new TransportLayerException("Session exists, but port "+ mSL.get_socket(Elm.getSocket()).dst_port +" not binded!"); } --- 672,676 ---- { // hm... it is bug! ! throw new TransportLayerException("Session exists, but port "+ mSL.get_socket(Elm.getSocket()).dst_port +" not binded! It is scary bug!"); } *************** *** 676,680 **** boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); ! mSL.get_socket(Elm.getSocket()).app.OnConnect(Elm.getSocket()); } else --- 694,700 ---- boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); ! //mSL.get_socket(Elm.getSocket()).app.OnConnect(Elm.getSocket()); ! jnSocket jns = mSL.get_socket(Elm.getSocket()); ! jns.app.OnConnect(Elm.getSocket()); } else *************** *** 699,706 **** boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes1); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); Elm.setState(Elm.LAST_ACK); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); int resendtimes2[] = {1500,3000,6000,12000,24000,48000,64000,64000,64000,64000,64000,64000,-1}; //to resend or not to resend ? flags = genFlags(FIN); --- 719,724 ---- *************** *** 725,728 **** --- 743,747 ---- { if(inPacket.get_ACK_flag()){ + mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); mSL.close(Elm.getSocket()); } *************** *** 740,759 **** if(inPacket.get_ACK_flag() && inPacket.get_FIN_flag()){ Elm.setState(Elm.TIME_WAIT); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); } else if(inPacket.get_ACK_flag()){ Elm.setState(Elm.FIN_WAIT_2); ! int resendtimes[] = {75000,-3}; ! Elm.fin_wait_2_timer = createTimer(Elm.getSocket(), null, resendtimes); } else if(inPacket.get_FIN_flag()){ Elm.setState(Elm.CLOSING); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); } else if(!(inPacket.get_ACK_flag() || inPacket.get_SYN_flag() || inPacket.get_FIN_flag())){ --- 759,786 ---- if(inPacket.get_ACK_flag() && inPacket.get_FIN_flag()){ Elm.setState(Elm.TIME_WAIT); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); + if(USE_2MSL){ + int resendtimes2[] = {2*MSL_TIME,-3}; // 2MSL + Elm.last_timer = createTimer(Elm.getSocket(), null, resendtimes2); + } + else{ + mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); + mSL.close(Elm.getSocket()); + } } else if(inPacket.get_ACK_flag()){ Elm.setState(Elm.FIN_WAIT_2); ! int resendtimes[] = {75000,-3}; // non-RFC exit ! Elm.last_timer = createTimer(Elm.getSocket(), null, resendtimes); } else if(inPacket.get_FIN_flag()){ Elm.setState(Elm.CLOSING); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); + int resendtimes2[] = {75000, -3}; // synchronous closing + Elm.last_timer = createTimer(Elm.getSocket(), null, resendtimes2); } else if(!(inPacket.get_ACK_flag() || inPacket.get_SYN_flag() || inPacket.get_FIN_flag())){ *************** *** 767,775 **** { if(inPacket.get_FIN_flag()){ ! Elm.setState(Elm.CLOSING); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); - mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); } else if(!(inPacket.get_ACK_flag() || inPacket.get_SYN_flag() || inPacket.get_FIN_flag())){ --- 794,810 ---- { if(inPacket.get_FIN_flag()){ ! Elm.setState(Elm.TIME_WAIT); int resendtimes[] = {}; boolean flags[] = genFlags(ACK); sendTCPSegment(Elm.getSocket(), "", flags, inPacket.get_sequence_number()+1, resendtimes); + removeTimer(Elm.last_timer); + if(USE_2MSL){ + int resendtimes2[] = {2*MSL_TIME, -3}; // 2MSL + Elm.last_timer = createTimer(Elm.getSocket(), null, resendtimes2); + } + else{ + mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); + mSL.close(Elm.getSocket()); + } } else if(!(inPacket.get_ACK_flag() || inPacket.get_SYN_flag() || inPacket.get_FIN_flag())){ *************** *** 784,787 **** --- 819,831 ---- if(inPacket.get_ACK_flag()){ Elm.setState(Elm.TIME_WAIT); + removeTimer(Elm.last_timer); + if(USE_2MSL){ + int resendtimes2[] = {2*MSL_TIME, -3}; // 2MSL + Elm.last_timer = createTimer(Elm.getSocket(), null, resendtimes2); + } + else{ + mSL.get_socket(Elm.getSocket()).app.OnDisconnect(Elm.getSocket()); + mSL.close(Elm.getSocket()); + } } else Index: Echo_tcp.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Echo_tcp.java,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Echo_tcp.java 22 Sep 2007 23:06:42 -0000 1.33 --- Echo_tcp.java 23 Sep 2007 20:24:43 -0000 1.34 *************** *** 25,29 **** private byte ConnectionAttempts=1; ! private int counts; private int crecv; private long utc1; --- 25,30 ---- private byte ConnectionAttempts=1; ! private int counts = 1; ! private String data = ""; private int crecv; private long utc1; *************** *** 53,65 **** } }catch (TransportLayerException e){ ! e.toString(); ! }catch (LowLinkException e){ ! e.toString(); } - //mParentStack.SL().listen(sock); } public void Accept(int listenSock, int sessionSock) throws TransportLayerException{ connections.add(new Integer(sessionSock)); } --- 54,64 ---- } }catch (TransportLayerException e){ ! System.out.println(e.toString());; } } public void Accept(int listenSock, int sessionSock) throws TransportLayerException{ connections.add(new Integer(sessionSock)); + System.out.println("Accepted socket="+sessionSock+" for listen socket="+listenSock); } *************** *** 99,119 **** public boolean Connect(String Host, int port) throws TransportLayerException, InvalidNetworkLayerDeviceException, CommunicationException, LowLinkException { ! sdHost = Host; ! sdPort = port; ! ! LayerInfo protInfo2 = new LayerInfo(getClass().getName()); ! protInfo2.setObjectName(mParentStack.getParentNodeName()); ! protInfo2.setDataType("Echo Protocol Data"); ! protInfo2.setLayer("Application "); ! protInfo2.setDescription("Connecting to host " + Host + ":"+ port +". Please wait..."); ! Simulation.addLayerInfo(protInfo2); ! // do ! // { ! // ConnectionAttempts--; ! // clientPort = mParentStack.ConnectTCP(this, sdHost, sdPort); ! // } ! // while (ConnectionAttempts>0 && clientPort==-1); ! boolean isconnected = mParentStack.SL().connect(sock, sdHost, sdPort); return isconnected; --- 98,104 ---- public boolean Connect(String Host, int port) throws TransportLayerException, InvalidNetworkLayerDeviceException, CommunicationException, LowLinkException { ! printLayerInfo("Connecting to host " + Host + ":"+ port +". Please wait..."); ! boolean isconnected = mParentStack.SL().connect(sock, Host, port); return isconnected; *************** *** 128,131 **** --- 113,130 ---- public void OnConnect(int sock){ System.out.println("ECHO_TCP: Connected "+sock+" !"); + try{ + if(appType == 0){ + printLayerInfo("Start sending echo message '" + data + "' to " + mParentStack.SL().get_socket(sock).dst_IP + ":" + mParentStack.SL().get_socket(sock).dst_port); + this.counts--; + //SendData(Data); + mParentStack.TCP().disconnect(sock); + } + }catch(LowLinkException e){ + System.out.println(e.toString()); + }catch(CommunicationException e){ + System.out.println(e.toString()); + }catch(TransportLayerException e){ + System.out.println(e.toString()); + } } *************** *** 137,157 **** public void OnDisconnect(int sock) { try{ - Listen(); if(appType == 1){ connections.remove(new Integer(sock)); } }catch(Exception e){ ! LayerInfo protInfo = new LayerInfo(getClass().getName()); ! protInfo.setObjectName(mParentStack.getParentNodeName()); ! protInfo.setDataType("Echo Protocol Data"); ! protInfo.setLayer("Application "); ! protInfo.setDescription("Cannot listen on port: " + e.toString()); ! Simulation.addLayerInfo(protInfo); ! protInfo = null; } } ! public void OnError(int sock){ } --- 136,161 ---- public void OnDisconnect(int sock) { + System.out.println("ECHO_TCP: Disconnected "+sock+" !"); try{ if(appType == 1){ connections.remove(new Integer(sock)); + //Listen(); } }catch(Exception e){ ! printLayerInfo("Cannot listen on port: " + e.toString()); } } ! public void OnError(int sock, int error){ ! switch(error){ ! case -1: { ! printLayerInfo("Error: can not connect to " + mParentStack.SL().get_socket(sock).dst_IP + ":" + mParentStack.SL().get_socket(sock).dst_port); ! break; ! } ! case -2 :{ ! OnDisconnect(sock); ! break; ! } ! } } *************** *** 166,172 **** public void SendData(String Data) throws LowLinkException, TransportLayerException, CommunicationException { ! ! mParentStack.SL().write(sock, Data); ! //processing the protocol doings. } --- 170,174 ---- public void SendData(String Data) throws LowLinkException, TransportLayerException, CommunicationException { ! mParentStack.SL().write(sock, Data); //processing the protocol doings. } *************** *** 186,198 **** if(appType == 0){ ! //client processing recieve ! // printing some ... ! LayerInfo protInfo = new LayerInfo(getClass().getName()); ! protInfo.setObjectName(mParentStack.getParentNodeName()); ! protInfo.setDataType("Echo Protocol Data"); ! protInfo.setLayer("Application "); ! protInfo.setDescription("Recieving echo message '" + Data + "' from server."); ! Simulation.addLayerInfo(protInfo); ! protInfo = null; /* --- 188,192 ---- if(appType == 0){ ! printLayerInfo("Recieving echo message '" + Data + "' from server."); /* *************** *** 205,225 **** if(this.counts==0){ ! mParentStack.SL().close(sock); ! LayerInfo protInfo2 = new LayerInfo(getClass().getName()); ! protInfo2.setObjectName(mParentStack.getParentNodeName()); ! protInfo2.setDataType("Echo Protocol Data"); ! protInfo2.setLayer("Application "); ! protInfo2.setDescription("Connection time: " + (long)(System.currentTimeMillis () - utc1) + " ms. Total recieved messages: " + recieved + "."); ! Simulation.addLayerInfo(protInfo2); }else{ this.counts--; ! try { ! LayerInfo protInfo3 = new LayerInfo(getClass().getName()); ! protInfo3.setObjectName(mParentStack.getParentNodeName()); ! protInfo3.setDataType("Echo Protocol Data"); ! protInfo3.setLayer("Application "); ! protInfo3.setDescription("Sending echo message '" + Data + "' to server..."); ! Simulation.addLayerInfo(protInfo3); ! SendData(Data); }catch(Exception e){ --- 199,207 ---- if(this.counts==0){ ! printLayerInfo("Connection time: " + (long)(System.currentTimeMillis () - utc1) + " ms. Total recieved messages: " + recieved + "."); }else{ this.counts--; ! try { ! printLayerInfo("Sending echo message '" + Data + "' to server..."); SendData(Data); }catch(Exception e){ *************** *** 232,254 **** //server processing recieve ! LayerInfo protInfo = new LayerInfo(getClass().getName()); ! protInfo.setObjectName(mParentStack.getParentNodeName()); ! protInfo.setDataType("Echo Protocol Data"); ! protInfo.setLayer("Application "); ! protInfo.setDescription("Recieving echo message '" + Data + "' from client. Total recieved messages: " + recieved + "."); ! Simulation.addLayerInfo(protInfo); ! LayerInfo protInfo2 = new LayerInfo(getClass().getName()); ! protInfo2.setObjectName(mParentStack.getParentNodeName()); ! protInfo2.setDataType("Echo Protocol Data"); ! protInfo2.setLayer("Application "); ! protInfo2.setDescription("Sending echo message '" + Data + "' to client."); ! Simulation.addLayerInfo(protInfo2); try { SendData(Data); ! }catch(Exception e){ ! Error.Report(e); ! ///*TODO*: here to catch } --- 214,225 ---- //server processing recieve ! printLayerInfo("Recieving echo message '" + Data + "' from client. Total recieved messages: " + recieved + "."); ! printLayerInfo("Sending echo message '" + Data + "' to client."); try { SendData(Data); ! }catch(CommunicationException e){ ! System.out.println(e.toString()); } *************** *** 266,299 **** */ public void SendEcho(String Data, String Host, int port, int counts) throws CommunicationException, LowLinkException, InvalidNetworkLayerDeviceException, TransportLayerException{ - mParentStack.SL().free(sock); - recieved = 0; - this.counts = counts; utc1 = System.currentTimeMillis (); ! if (Connect(Host, port)) ! { ! LayerInfo protInfo = new LayerInfo(getClass().getName()); ! protInfo.setObjectName(mParentStack.getParentNodeName()); ! protInfo.setDataType("Echo Protocol Data"); ! protInfo.setLayer("Application "); ! protInfo.setDescription("Start sending echo message '" + Data + "' to " + Host + ":" + port); ! Simulation.addLayerInfo(protInfo); ! ! this.counts--; ! //SendData(Data); ! ! } else ! { ! LayerInfo protInfo = new LayerInfo(getClass().getName()); ! protInfo.setObjectName(mParentStack.getParentNodeName()); ! protInfo.setDataType("Echo Protocol Data"); ! protInfo.setLayer("Application "); ! protInfo.setDescription("Error: can not connect to " + Host + ":" + port + "!"); ! Simulation.addLayerInfo(protInfo); ! this.counts=0; } } } --- 237,258 ---- */ public void SendEcho(String Data, String Host, int port, int counts) throws CommunicationException, LowLinkException, InvalidNetworkLayerDeviceException, TransportLayerException{ recieved = 0; utc1 = System.currentTimeMillis (); ! if (Connect(Host, port)){ ! this.counts = counts; ! this.data = Data; ! } ! else{ ! printLayerInfo("Error: can not connect to " + Host + ":" + port + "!"); } } + + protected void printLayerInfo(String s) { + super.printLayerInfo("Echo Protocol Data", s); + } + + } Index: Application.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Application.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Application.java 22 Sep 2007 23:06:42 -0000 1.19 --- Application.java 23 Sep 2007 20:24:43 -0000 1.20 *************** *** 79,83 **** public abstract void OnConnect(int sock); ! public abstract void OnError(int sock); /** --- 79,83 ---- public abstract void OnConnect(int sock); ! public abstract void OnError(int sock, int error); /** Index: TCP_session.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/TCP_session.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TCP_session.java 23 Sep 2007 01:49:58 -0000 1.4 --- TCP_session.java 23 Sep 2007 20:24:43 -0000 1.5 *************** *** 32,36 **** public static int Element_id = 0; private int state = CLOSED; ! public long fin_wait_2_timer = -1; public static final int CLOSED = 0; --- 32,36 ---- public static int Element_id = 0; private int state = CLOSED; ! public long last_timer = -1; public static final int CLOSED = 0; Index: Echo.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/Echo.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Echo.java 22 Sep 2007 23:06:42 -0000 1.25 --- Echo.java 23 Sep 2007 20:24:43 -0000 1.26 *************** *** 118,122 **** } ! public void OnError(int sock){ } --- 118,122 ---- } ! public void OnError(int sock, int error){ } Index: ExternalProxyApp.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/ExternalProxyApp.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ExternalProxyApp.java 22 Sep 2007 23:06:42 -0000 1.3 --- ExternalProxyApp.java 23 Sep 2007 20:24:43 -0000 1.4 *************** *** 176,180 **** } ! public void OnError(int sock){ } --- 176,180 ---- } ! public void OnError(int sock, int error){ } Index: SNMP.java =================================================================== RCS file: /cvsroot/javanetsim/javaNetSim/core/protocolsuite/tcp_ip/SNMP.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** SNMP.java 22 Sep 2007 23:06:43 -0000 1.18 --- SNMP.java 23 Sep 2007 20:24:43 -0000 1.19 *************** *** 225,229 **** ! public void OnError(int sock){ } --- 225,229 ---- ! public void OnError(int sock, int error){ } |