Skip to content

AlexChulkin/concurrentTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

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

No packages published

Languages