コード例 #1
0
 public SynSentState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #2
0
 public ClosingState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #3
0
 public FinWait2State(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #4
0
 public TimeWaitState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #5
0
        public static string TraverseStates(string[] events)
        {
            TCP myTCP = new TCP();

            foreach (string myEvent in events)
            {
                switch (myEvent)
                {
                case "APP_PASSIVE_OPEN":
                    if (!currentState.AppPassiveOpen())
                    {
                        return("ERROR");
                    }
                    break;

                case "APP_ACTIVE_OPEN":
                    if (!currentState.AppActiveOpen())
                    {
                        return("ERROR");
                    }
                    break;

                case "APP_SEND":
                    if (!currentState.AppSend())
                    {
                        return("ERROR");
                    }
                    break;

                case "APP_CLOSE":
                    if (!currentState.AppClose())
                    {
                        return("ERROR");
                    }
                    break;

                case "APP_TIMEOUT":
                    if (!currentState.AppTimeOut())
                    {
                        return("ERROR");
                    }
                    break;

                case "RCV_SYN":
                    if (!currentState.RcvSyn())
                    {
                        return("ERROR");
                    }
                    break;

                case "RCV_ACK":
                    if (!currentState.RcvAck())
                    {
                        return("ERROR");
                    }
                    break;

                case "RCV_SYN_ACK":
                    if (!currentState.RcvSynAck())
                    {
                        return("ERROR");
                    }
                    break;

                case "RCV_FIN":
                    if (!currentState.RcvFin())
                    {
                        return("ERROR");
                    }
                    break;

                case "RCV_FIN_ACK":
                    if (!currentState.RcvFinAck())
                    {
                        return("ERROR");
                    }
                    break;

                default: return("ERROR");
                }
            }
            return(currentState.Name);
        }
コード例 #6
0
 public CloseWaitState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #7
0
 public EstablishedState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #8
0
 public ListenState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #9
0
 public SynRcvdState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }
コード例 #10
0
 static void Main(string[] args)
 {
     Console.WriteLine(TCP.TraverseStates(
                           new[] { "APP_ACTIVE_OPEN", "RCV_SYN_ACK", "APP_CLOSE", "RCV_FIN_ACK", "RCV_ACK" }));
     Console.ReadLine();
 }
コード例 #11
0
 public LastAckState(TCP tcpFSM)
 {
     this.tcpFSM = tcpFSM;
 }