модуль сраб импорт "стд::вывод" импорт "стд::комстрока" импорт "исх/спринтф" импорт "исх/струя" импорт "исх/сеть/тцп" импорт "исх/сеть/хттп" импорт "исх/маршруты" импорт "исх/сборщик-мусора" импорт "исх/миграции" импорт "исх/картотека" импорт "исх/вперед-назад" импорт "исх/стд-вперед-назад" импорт "исх/отдых" пусть маршрутизатор = маршруты.получить маршрутизатор() фн обработать тцп подключение(соединение полиморф: *) { пусть соединение = соединение полиморф(:тцп.ТцпСоединение) пусть обращение = хттп.разобрать хттп обращение(соединение) пусть ответ = маршрутизатор.обработать обращение(обращение) // вывод.ф("$стр $стр -> $цел\n", обращение.метод, обращение.путь, ответ.код) хттп.отправить хттп ответ(соединение, ответ) соединение.закрыть() } фн обработать стдвнутрь подключение() { пусть обращение = хттп.разобрать хттп обращение(стд-вперед-назад.СтдВнутрь{}) // вывод.ф("$стр $стр\n", обращение.метод, обращение.путь) пусть ответ = маршрутизатор.обработать обращение(обращение) пусть данные = хттп.сериализовать хттп ответ(ответ) стд-вперед-назад.ошибка(данные) } вход { комстрока.логическая настройка("подшефный", ложь, "") комстрока.логическая настройка("роанапур", ложь, "") комстрока.разобрать() пусть подшефный = комстрока.логическое значение("подшефный") пусть роанапур = комстрока.логическое значение("роанапур") если подшефный { обработать стдвнутрь подключение() } иначе если роанапур { миграции.мигрировать(картотека.зайти()) } иначе { миграции.мигрировать(картотека.зайти()) пусть номер причала = 1337 вывод.ф("Готовим сервер у причала $цел\n", номер причала) пусть сервер = тцп.создать сервер(номер причала) пусть обработано запросов := 0 пока истина { пусть подключение = сервер.принять чертово соединение() пусть новая струя = струя.новая струя(обработать тцп подключение, подключение) струя.отсоединить струю(новая струя) обработано запросов++ если обработано запросов > 100000 { вывод.ф("Вы используете пробную версию программы. Пожалуйста, приобретите полную версию для продолжения использования.\n") прервать } } вывод.ф("Котенок умер\n") } }