-
Notifications
You must be signed in to change notification settings - Fork 0
AlexChulkin/concurrentTask
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A. SETTING THE TASK (IN RUSSIAN) 1. Обход дерева на заданную глубину без использования рекурсии. Написать консольное приложение на Java, которое принимает три параметра: - путь к начальной директории (rootPath) - глубина поиска - неотрицательное целое число (depth) - маска - строка (mask) Приложение должно найти все элементы дерева файловой системы находящиеся на глубине depth от корня дерева rootPath, которые в своем имени содержат строку mask. Требования: - Приложение должно быть реализовано БЕЗ использования рекурсии. - Приложение не должно зависеть от ОС. 2. Модифицировать приложение из задачи 1 следующим образом: - один поток производит поиск - другой поток выводить на консоль результаты по мере их появления. Результаты работы обоих потоков выводить на консоль. 3. Модифицировать приложение из задачи 1, 2 в простой многопользовательский телнет сервер: приложение принимает два параметра: - serverPort - порт, который оно будет "слушать" - путь к начальной директории (rootPath) Критерии поиска (глубина и маска) задаются через консоль клиента телнета (использовать для этого стандартные программы: telnet, putty, ...) Например, пользователь вводит: 2 ab 2 - глубина ab - маска Требования: - *все* обращения к файловой системе должны производится из *одного потока* { Т.е. на сервере существует thread, из которого и только из него выполняется обращение к файловой системе. } - "телнет сервер" должен быть многопользовательским + интерактивным { если на сервер зайдут одновременно 4 клиента и каждый задаст "поисковый запрос", то результаты к клиентам должны приходить параллельно, а не последовательно, т.е. пользователь не должен ожидать завершения выдачи результатов всем предшествующим пользователям. } 1. Архивированный пакет с результатами должен присылаться в ZIP формате. 2. Не содержать бинарных файлов за исключением тех случаев когда это *отдельно* согласовано. 3. Проект должен собираться и запускаться из командной строки. 3.1. java: build.xml проект файл для сборки и запуска программой ant; 3.2. C/C++: Makefile. Проект файл для сборки программой make. GNU Make или Nmake в зависимости от Linux или Windows. 3.2.1. Для Windows допускается MS Visual Studio проект но не обязательно. 4. Все комментарии в исходном коде должны быть на английском. B. SOLUTION Compile: ant clean compile Run: Remember that <root> should be the valid path, <depth? should be integer and not negative, <portNumber> should be 23 for the Telnet server. Please use Putty to run the Telnet clients in the simplest way. 1st Task: ant run -DmainClass=Task1 -Da=<root> -Db=<mask> -Dc=<depth> 2nd Task: ant run -DmainClass=Task2 -Da=<root> -Db=<mask> -Dc=<depth> 3rd Task server: ant run -DmainClass=Task3 -Da=<root> -Db=<portNumber> 3rd Task client: <depth> <mask> Compile and run: ant clean compile run ...
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published