Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod seti.doc
Скачиваний:
20
Добавлен:
01.04.2025
Размер:
306.18 Кб
Скачать

5. Рабочее задание и указание к его выполнению.

В данной лабораторной работе необходимо разработать программы для передачи данных в сети с использованием стека протоколов TCP/IP. Варианты заданий выбираются исходя из таблиц, приведенных ниже. По номеру варианта, полученного у преподавателя, вы выбираете из таблицы вид транспортного протокола, тип приема/передачи и номер задания из списка.

Список заданий:

  1. Переслать состояние сервера клиенту. Сервер поддерживает одновременное соединение с более чем одним клиентом. В качестве информации о сервере необходимо передавать имена и адреса клиентов, подсоединенных в текущий момент, общее кол-во соединений, количество байт информации, переданной от сервера клиентам на текущий момент, объем информации, полученной клиентом от сервера на текущий момент, время работы программы-сервера с момента запуска, кол-во свободных каналов для соединения с клиентами, версия используемой библиотеки winsock, список поддерживаемых протоколов и т.д. Необходимо передать не менее пяти пунктов из списка.

  2. Терминал для пересылки символов. На экране два окна. Одно для передаваемых данных, второе для принимаемых. Передача осуществляется по нажатию клавиши немедленно. Сервер принимает запрос на соединения только с одним клиентом.

  3. Терминал для пересылки символов. Одно для передаваемых данных, второе для принимаемых. Передача осуществляется по нажатию клавиши немедленно. На стороне клиента окно для передачи данных, на стороне сервера окно для каждого соединения с клиентом, содержащее полученную информацию. При установлении соединения сервер создает новое окно, зоголовком которого является имя или адрес клиента. Сервер принимает запрос на соединения с более чем одним клиентом.

  4. Терминал для пересылки символьных строк. По окончанию ввода строки символов и нажатию клавиши «Enter» происходит передача строки символов от клиента серверу. На стороне сервера – окно для приема данных, на стороне клиента – окно для передачи символьных строк и окно с информацией о состоянии каждой передачи (пакет принят сервером, связь разорвана, сервер не отвечает и т.д.)

  5. Эхо-протокол. Передаётся тестовый пакет. Исходный текст генерируется у клиента, передаётся на сервер, отображается на мониторе сервера, возвращается клиенту и отображается на мониторе клиента. На стороне сервера окно для приема данных. При каждой передаче данных от клиента к серверу, при выводе на экран, к пакету принимаемых данных добавляется информация об адресе клиента. На стороне клиента должна присутствовать возможность генерации тестового пакета автоматически и вручную.

  6. Переслать файл от клиента к серверу. На стороне клиента должен быть диалог выбора файла для отправки. Формат файла – любой. На сервере – окно с информацией о полученных файлах (размер, время создания, имя клиента отославшего файл). Кол-во соединений неограниченно.

  7. Построить примитивный FTP-сервер. Сервер должен реагировать на запросы клиента и предоставлять следующие возможности:

  • получение списка файлов в текущей директории (текущей считается директория, из которой запущена программа-сервер);

  • получение списка файлов заданной директории или сообщение об отсутствии заданной директории или файлов внутри нее;

  • переслать запрошенный клиентом файл от сервера клиенту.

Формат управляющего пакета:

Управляющий пакет состоит из 4-х байтов. Первый байт - код команды, второй, третий - операнд, четвертый - резерв:

Код команды

Псевдоним

Операнд

Комментарии

Резерв

000000001

List

Имя директории на сервере

Передает клиенту список файлов указанной директории, если операнд пустой – директория текущая.

Если резерв равен 00000001, то следующие пакеты будут содержать значения операнда, до тех пор пока резерв не станет равен 00000000

000000010

scopy

Имя файла

Осуществляет передачу файла, заданного полем операнд, клиенту

В резерве содержится маркер продолжения, если он равен 00000001, то следующие пакеты данных – значение операнда. Конец – 00000000.

000000011

Определяется студентом

11111111

Формат данных: данные пересылаются пакетами по 32 байта.

Т.е. если полученное кол-во байтов равно 4, то пакет управляющий, если 32, то информационный. Пакет с данными должен всегда быть равным 32 байта, если пакет меньше, то его размер должен быть увеличен до 32-х байтов. 32-ой байт пакета данных – позиция конца данных в пакете. Например, если в пакете данных полезных байтов информации – 20, то пакет содержит следующую информацию:

{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}{I}NNNNNNNNNNN{20}, где {I} – байт содержащий полезную информацию, N – мусор, {20} позиция конца полезной информации относительно начала пакета.

  1. Написать программу-клиент к варианту 7.

  2. Переслать копию рабочего стола ОС Windows от сервера клиенту в виде BMP файла.

  3. Запустить указанный exe файл на сервере. От клиента сервер получает пакет с полным именем исполнимого файла (путь + имя + расширение). Сервер уведомляет клиента о выполнении задачи или об отсутствии исполнимого файла на стороне сервера и разрывает соединение с клиентом. Количество соединений неограниченно.

  4. Выключить компьютер на стороне клиента используя API-функции ОС и socket.

  5. Синхронизировать системные часы на клиентах и сервере, используя широковещательную передачу данных. Сервер считывает системное время и посылает всем компьютерам в данной сети. Компьютеры, на которых запущена программа-клиент изменяют системную дату и время, используя информацию полученную от сервера. В случае ошибки выдать соответствующее сообщение.

  6. Сгенерировать сообщение-задание и отослать его от клиента к серверу. Сервер должен предоставлять список доступных заданий по запросу клиента. Клиент выбирает номер задания из списка предоставленного сервером и назначает время выполнения каждого из заданий. Например, сервер по запросу клиента предоставляет следующую информацию:

1 – выключить компьютер;

2 – запустить программу проверки дисков на наличие ошибок;

3 – запустить антивирус;

4 – остановить работу программы сервера.

Клиент генерирует следующее сообщение:

11.01.04 12:00 [3]

Сервер получив сообщение от клиента обрабатывает его содержимое и выполняет предписанные действия, информируя клиента о выполнении. Количество соединений сервера с клиентом не ограничено.

Формат запроса списка заданий – 4-х байтовое сообщение «list»

Формат сообщения задания: - 20-ти байтовое сообщение содержащее дату, время и номер задания из списка предоставленного сервером.

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

14) Сервер слежения за состоянием компьютеров в сети. Используя широковещательную передачу данных каждые 3 минуты проверять о нахождении зарегистрированных компьютеров в сети. В случае отключения компьютера сервер выводит соответствующую информацию. При регистрации нового компьютера в сети сервер делает необходимую запись и по запросу выдает их пользователю (локальному). Регистрация происходит путем передачи пакета с данными «reg» клиентом к серверу.

Таблицы вариантов.

Протокол TCP

С использованием синхронной передачи данных

Вариант №

1

2

3

4

5

6

7

8

9

10

11

Сложность

***

*

**

**

**

**

***

***

**

*

*

Пункт задания

1

2

3

4

5

6

7

8

9

10

11

С использованием асинхронной передачи данных

Вариант №

12

13

14

15

16

17

18

19

20

21

22

Сложность

***

*

**

**

**

**

***

***

**

*

*

Пункт задания

1

2

3

4

5

6

7

8

9

10

11

Протокол UDP

С использованием синхронной передачи данных

Вариант №

23

24

25

26

27

28

29

30

31

Сложность

***

*

**

***

*

**

**

**

**

Пункт задания

12

13

14

1

2

3

4

5

6

С использованием асинхронной передачи данных

Вариант №

32

33

34

35

36

37

38

39

40

Сложность

*

***

**

***

*

**

**

**

**

Пункт задания

12

13

14

1

2

3

4

5

6

* - легкая задача

** - задача средней сложности

*** - трудная задача

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]