Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

серверное приложение для нахождения корней квадратного уравнения x^2 bx c 0 Приложение состоит из кл

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

~square_root_server

Клиент-серверное приложение для нахождения корней квадратного уравнения

a*x^2 + b*x + c = 0

Приложение состоит из клиентской части, которая принимает от

пользователя коэффициенты a, b, c, и выводит результат,

и серверной части, которая вычисляет результат.

Клиентская часть соединяется с серверной частью по протоколу TCP,

передает на сервер коэффициенты a, b, c.

Серверная часть вычисляет результат, и отправляет его обратно клиентской части,

после чего соединение закрывается.

При невозможности вычисления корней должно выводиться

соответствующее сообщение.

Разработать и описать протокол общения между клиентской и серверной

частями приложения.  Протокол должен состоять из запросов и ответов

определенного формата.

Варианты реализации протокола:

- двоичный протокол (сериализация чисел с плавающей точкой с

   учетом порядка байт, присущего платформе - big/little endian)

- текстовый протокол (использование sprintf()/sscanf())

Серверная часть принимает и обрабатывает входящие запросы последовательно.

~udp_chat_duplex

Чат-приложение, использующее датаграммный протокол UDP.

Приложение обеспечивает двусторонний обмен сообщениями в режиме

реального времени.  При старте приложения указывается три параметра:

порт привязки локального экземпляра программы, адрес и порт привязки

удаленного экземпляра.

Сообщения считываются с терминала и выводятся на терминал.

Для организации одновременного ожидания данных с терминала и сокета

использовать функцию select().


~chat_server

Сервер простого чат-протокола.

Сервер принимает подключения от клиентов, идентифицируя их по никам (nickname),

принимает от клиентов сообщения и переправляет их адресатам.

Если новый клиент указывает ник уже подключенного клиента, то сервер

не разрешает ему подключение.

Сообщение может быть адресовано или одному клиенту (приват) или всем сразу,

кто сейчас подключен.

Кроме сообщений клиенты получают уведомления о присоединении и отсоединении

клиентов. Клиент может запрашивать полный список подключенных клиентов на сервере.

Сервер должен поддерживать массив присоединенных клиентов с их никами.

Использовать отладочный вывод данных в лог-файл.

Описание протокола:

Сообщения протокола - это текстовые строки,

заканчивающиеся символом '\n' (перевод строки).

Сообщения протокола являются командами, если начинаются с символа '/'.

В противном случае, эти сообщения являются публичными сообщениями

от клиента всем участникам.

Команды с параметрами и пример интерактивной сессии

приведены ниже.

Знаком < помечен ввод пользователя, знаком > помечена выдача сервера.

telnet 127.0.0.1 4577

Connected.

<"privet\n"

>"/error say_login\n"

<"/privet\n"

>"/error unknown_command\n"

<"/login petya\n"

>"/error login_in_use\n"

<"/login vasya\n"

>"/userlist vasya petya masha dasha\n"

<"privet vsem!\n"

>"/msg vasya privet vsem!\n"

<"/private petya zdorovo petro, kak zhizn'?\n"

>"/private petya normul :)\n"

>"/status gogi joined\n"

>"/msg gogi ashambeh-mashambeh...\n"

<"/userlist\n"

>"/userlist gogi vasya petya masha dasha\n"

>"/status gogi left\n"

<"/userlist\n"

>"/userlist vasya petya masha dasha\n"

<"/logout\n"

Disconnected.


~chat_client

Клиентское чат-приложение, использующее простой протокол

датаграммный протокол UDP.

Приложение обеспечивает двусторонний обмен сообщениями в режиме

реального времени.  При старте приложения указывается три параметра:

порт привязки локального экземпляра программы, адрес и порт привязки

удаленного экземпляра.

Сообщения считываются с терминала и выводятся на терминал.

Для организации одновременного ожидания данных с терминала и сокета

использовать функцию select().

~tcp_getfile_select

Передача файла с сервера на клиент по простому протоколу на основе TCP.

Входящие запросы обрабатываются параллельно, используя функцию select().

 

Протокол должен состоять из запросов и ответов.

В запросе от клиента должно указываться имя файла на сервере, который

должен быть отправлен клиенту.

В ответе от сервера должен значиться код ответа для различения

нормальных и ошибочных ситуаций и сами данные из запрашиваемого файла.

Функция select() позволяет дождаться события, то есть готовности

файлового дескриптора по записи или чтению.  Например, если она сигнализирует

о готовности некоторого сокета по записи, это означает, что как минимум

один вызов write() для этого сокета не будет блокирующим.

Задача в том, чтобы параллельные запросы по скачиванию достаточно

длинных файлов выполнялись сервером псевдо-параллельно.


~udp_getfile

Написать программу, состоящую из клиентской

и серверной частей, которая будет скачивать указанный

клиентом файл с сервера, используя протокол UDP.

Обе части можно оформить в виде консольных приложений

Win32 или POSIX. Язык: ANSI С.

Серверная часть запускается и ждет запроса на определенном порту.

Клиентская часть запускается пользователем из командной строки

со следующими примерными параметрами.

./download_by_udp localhost 12345 /my_docs/info.txt ./downloads/info.txt

где localhost 12345 - хост и порт серверного UDP сокета

/my_docs/info.txt - файл на стороне сервера, который мы хотим скачать.

./downloads/info.txt - файл на стороне клиента, куда будет записан скачанный файл.

Предусмотреть обработку ошибок типа: нет соединения, файл не найден и т.д.

Так, как передача данных будет происходить по

датаграммному протоколу, необходимо будет предусмотреть разбиение

передаваемых данных на датаграммы, и их надежную доставку.

Т.е. в некотором смысле эмулировать работу TCP.

Лиература:

http://rsdn.ru/article/unix/sockets.xml

http://citforum.univ.kiev.ua/book/cook/winsock.shtml


~tcp_getfile

Разработать клиентскую и серверную части ПО для передачи файлов

с сервера на клиент по запросу клиента.

Использовать в качестве транспорта протокол надежной передачи

с установлением соединения TCP.

Серверная часть принимает и обрабатывает входящие запросы последовательно.

Разработанный прикладной протокол передачи и пользовательский

интерфейс должны предусматривать корректные обработку ошибок,

например таких, как "Файл не найден на стороне сервера".

Дополнительные требования:

Пользовательский интерфейс сервера: командная строка

Пример вызова: ./ft_server 12345

где 12345 - номер порта.

Сервер запускается и входит в бесконечный цикл обработки запросов.

Пользовательский интерфейс клиента: командная строка

Пример вызова: ./ft_client 127.0.0.1 12345 remote_folder/remote_file.txt local.txt

где 127.0.0.1 12345 - сокет сервера,

remote_folder/remote_file.txt - что скачать с сервера,

local.txt - куда сохранить локально.

Инструменты: язык ANSI C, набор вызовов socket API / POSIX

~auth_server

Разработать сервер аутентификации.

Сервер должен принимать запрос в виде UDP датаграммы,

сформированной по определенному протоколу и содержащей

имя пользователя и пароль.  Сервер должен отвечать

в виде UDP датаграммы с результатом аутентификации (да|нет).

Аутентификация производится на основе базы данных

(например, в виде текстового файла) на стороне сервера.

В базе должны храниться только дайджесты паролей.

Для тестирования работоспособности необходимо разработать

простой клиент данного протокола.

В пояснительной записке обязательно задокументировать

разработанный протокол.

Инструменты: язык ANSI C, набор вызовов socket API / POSIX


~backup_server

Разработать клиент-серверное приложение для

резервного копирования файлов.

Клиентская часть сканирует указанную папку (вызовы opendir(), readdir())

и сравнивает ее содержимое с информацией, полученной с сервера.

Сравнение производится по дате модификации файла и размеру.

Измененные файлы передаются на сервер, т.о. на сервере

поддерживается актуальная копия данных.

Разработать протокол резервного копирования на основе TCP.

Инструменты: язык ANSI C, набор вызовов socket API / POSIX

 

~terminal_select

TCP клиент, ориентированный на построчный ввод-вывод текста.

Задача - дать пользователю вводить с терминала и отправлять

по TCP соединению, а также принимать из соединения и отображать на

терминале текстовую информацию.

Эта возможность может быть для экспериментов с протоколами

Интернет, которые, в большинстве, представляют собой текстовые

протоколы.

Пользователь запускает программу командой:

 ./my_tcp_client <remote_ip> <remote_port>

Клиентская программа устанавливает сетевое соединение и входит

в режим одновременного ожидания ввода данных

 - от пользователя через терминал.

 - от удаленной стороны через сокет.

Использовать вызов select() для ожидания события.

Инструменты: язык ANSI C, набор вызовов socket API / POSIX


~super_daemon

Сервер, принимающий входящие соединения, делегирующий

обработку диалога с клиентом сторонней программе

через интерфейс стандартного ввода-вывода.

Для отделения управления соединениями и самого диалога

с клиентом на стороне сервера можно применить т.н. суперсервер.

Принятое соединение становится стандартным вводом и выводом

дочернего процесса, запускаемого суперсервером для обработки

диалога с клиентом.  Пример приложения такого рода: inetd.

Программа суперсервер должна принимать в качестве

параметров номер порта для прослушивания и путь к исполняемому

файлу программы-обработчика.

Для порождения дочернего процесса использовать семейство

вызовов fork()/exec().

Для перенаправления ввода/вывода в порожденном процессе

использовать вызов dup2().

Инструменты: язык ANSI C, набор вызовов socket API / POSIX

~load_udp_sender

Программа для моделирования нагрузки на IP сеть.

Задача сгенерировать определенный объем трафика по параметрам,

заданным пользователем.

Параметры:

- IP и PORT назначения, куда будут оправляться

  сгенерированные датаграммы.

- Диапазон размеров тела датаграммы min, max.

  При генерации очередной датаграммы ее размер выбирается случайно

  из заданного диапазона.

- Диапазон задержки между посылками отдельных датаграмм: min, max.

  Перед посылкой очередной датаграммы формируется случайная задержка

  ее длительность выбирается случайно из заданного диапазона.

- Общее количество датаграмм к отправке.

Тело датаграммы должно содержать в начале ее порядковый номер

виде 32-битного числа с сетевым порядком байт. Остальное место -

заполнить псевдо-случайным шумом.

Замерить общее время отправки всех датаграмм.


~load_udp_receiver

Программа для анализа нагрузки на IP сеть.

Задача проанализировать поступающий UDP трафик,

собрать и вывести статистику по 10-сек. и минутным интервалам.

Статистика должна содержать количество принятых пакетов

за интервал и их суммарный размер данных в байтах.

Программе задается порт для приема данных.

Результат выводить на терминал в режиме реального

времени.

~simple_http_client

Простой неинтерактивный клиент протокола HTTP.

Входные данные: IP-адрес и порт сервера, путь к файлу от корня

WEB-сервера, имя локального файла для сохранения результата.

Клиент получает документ с сервера GET-запросом и сохраняет его

в локальный файл в случае успеха (код 200).

Предусмотреть анализ ошибочных ситуаций (коды 404, 500).

Параметры программа принимает с командной строки.

~socks4_proxy

Реализовать проксирующий TCP-соединения сервер, работающий

по протоколу SOCKS4.

http://ru.wikipedia.org/wiki/SOCKS

Основной алгоритм работы прокси сервера такой:

1. Принимаем соединение

2. Парсим заголовок

3. Устанавливаем соединение с целью

4. Отвечаем клиенту что всё ОК

5. Проксируем

6. Закрываем соединения

Особое внимание обратить на вопросы безопасности:

исключить возможность переполнения буфера.




1. Государственное регулирование иностранных инвестиций в РФ.html
2. Белгородский государственный национальный исследовательский университет АЛЕКСЕЕВСКИЙ ФИЛИАЛ
3. Эволюция экономических теорий потребительского поведения
4. тема государственного управления которая сложилась в 30е гг
5. Роль федеральных налогов в формировании бюджетов разных уровне
6. Информационное общество и заданиями к нему.
7. Профессиональные заболевания кожи
8. Тема 1 Предмет і завдання курсу ldquo;Основи природознавстваrdquo;
9. индивид рассматривает человека как представителя биологического класса homo spiens
10. Концепт «happiness» в американской лингвокультуре (на материале книги D Baird «1,000 Reasons to Be Happy»)
11. Глобальне потепління чи похолодання клімату Реакція океану
12. а матрицы совпадают то её определитель равен нулю
13. Реферат- Эжен Потье
14. Щадя преступников вредят честным людямСенекаВыдающийся философ Сенека жил во времена Римской империи
15. Тема 311 Час- 90 хвилин
16. Информатика факультет ЭТФ 1
17. В сущности здесь нет правильных и неправильных ответов правилен каждый правдивый ответ
18. мостобудівника професора Київського політехнічного інституту Є
19. ; ctinomycose франц хроническая болезнь вызываемая различными видами актиномицетов
20. Занятость населения Занятость населения во время кризиса Занятость моряков во время кризиса