Простейший конечный автомат для TCP-сессий на языке F#. Принимает набор событий в виде массива и возвращает новое состояние.
Если переход невозможен, то возвращается ERROR. Способ ввода/вывода осуществляется через консоль. Ввод событий осуществляется через пробел, например: APP_PASSIVE_OPEN APP_SEND RCV_SYN_ACK.
После обработки всех событий программа выводит "Финальное состояние: {Состояние}".
Пример использования:
APP_PASSIVE_OPEN APP_SEND RCV_SYN_ACK + Enter
Закрытие программы по команде Close.