Files
srab/исх/сраб.tri
2025-11-26 21:32:41 +03:00

79 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
модуль сраб
импорт "стд::вывод"
импорт "стд::комстрока"
импорт "исх/спринтф"
импорт "исх/струя"
импорт "исх/сеть/тцп"
импорт "исх/сеть/хттп"
импорт "исх/маршруты"
импорт "исх/сборщик-мусора"
импорт "исх/миграции"
импорт "исх/картотека"
импорт "исх/вперед-назад"
импорт "исх/стд-вперед-назад"
импорт "исх/отдых"
пусть маршрутизатор = маршруты.получить маршрутизатор()
фн обработать тцп подключение(соединение полиморф: *) {
пусть соединение = соединение полиморф(:тцп.ТцпСоединение)
пусть обращение = хттп.разобрать хттп обращение(соединение)
пусть ответ = маршрутизатор.обработать обращение(обращение)
// вывод.ф("$стр $стр -> $цел\n", обращение.метод, обращение.путь, ответ.код)
хттп.отправить хттп ответ(соединение, ответ)
соединение.закрыть()
}
фн обработать стдвнутрь подключение() {
пусть обращение = хттп.разобрать хттп обращение(стд-вперед-назад.СтдВнутрь{})
// вывод.ф("$стр $стр\n", обращение.метод, обращение.путь)
пусть ответ = маршрутизатор.обработать обращение(обращение)
пусть данные = хттп.сериализовать хттп ответ(ответ)
стд-вперед-назад.ошибка(данные)
}
вход {
комстрока.логическая настройка("подшефный", ложь, "")
комстрока.логическая настройка("роанапур", ложь, "")
комстрока.разобрать()
пусть подшефный = комстрока.логическое значение("подшефный")
пусть роанапур = комстрока.логическое значение("роанапур")
если подшефный {
обработать стдвнутрь подключение()
} иначе если роанапур {
миграции.мигрировать(картотека.зайти())
} иначе {
миграции.мигрировать(картотека.зайти())
пусть номер причала = 1337
вывод.ф("Готовим сервер у причала $цел\n", номер причала)
пусть сервер = тцп.создать сервер(номер причала)
пусть обработано запросов := 0
пока истина {
пусть подключение = сервер.принять чертово соединение()
пусть новая струя = струя.новая струя(обработать тцп подключение, подключение)
струя.отсоединить струю(новая струя)
обработано запросов++
если обработано запросов > 100000 {
вывод.ф("Вы используете пробную версию программы. Пожалуйста, приобретите полную версию для продолжения использования.\n")
прервать
}
}
вывод.ф("Котенок умер\n")
}
}