
- •Введение
- •Лабораторная работа № 1. 1. Основные теоретические положения (интерфейс windows sockets)
- •1.1. Сокеты, датаграммы и каналы связи
- •1.1.1. Инициализация приложения и завершение его работы
- •1.1.2. Создание и инициализация сокета
- •1.3. Индивидуальные задания на работу
- •Лабораторная работа № 2. 2. Создание канала связи
- •2.1. Сторона сервера
- •2.2. Сторона клиента
- •2.3. Передача и прием данных
- •2.4. Приложение server
- •2.5. Приложение client
- •2.6. Индивидуальные задания на работу
- •Лабораторная работа № 3. 3. Датаграммный протокол
- •3.1. Приложение serverd
- •3.2. Приложение clientd
- •3.3. Индивидуальные задания на работу
- •Литература
1.3. Индивидуальные задания на работу
1.3.1. Общее задание для всех студентов. Проверить наличие библиотеки WSOCK32.DLL и зарегистрировать приложение в библиотеке, определить описание реализации интерфейсаWindows Socket и его текущее состояние.
1.3.2. Индивидуальное задание для каждого студента. Подготовить приложение к созданию четырех сокетов - двух датаграммных сокетов и двух сокетов виртуального канала, с максимальным размером датаграммного пакета, равным числу из последних трех цифр номера зачетной книжки студента. Формат адреса соответствует принятому в Internet.
1.3.3. Индивидуальное задание для каждого студента. Задать параметры сокетов, подготовив структуры типа sockaddr. Предусмотреть возможность работы: в широковещательном режиме для первого сокета; с определенными IP-адресами для второго и третьего сокетов, равными соответственно «192.168.ZZZ.1ХХ» и «192.168.ZZZ.1ХХ+1», где ZZZ – номер подсети, указанный преподавателем, ХХ – последние две цифры номера зачетной книжки студента; с любым адресом для четвертого сокета.
1.3.4. Индивидуальное задание для каждого студента. В файле HOSTS определить четыре доменных имени для собственной рабочей станции и другой рабочей станции с номером, равным «№-1», где «№» - номер собственной рабочей станции (при «№-1», равном нулю, номер другой станции принимается равным «8»). В состав доменных имен ввести собственные инициалы. Имена связать с локальными датаграммным и виртуальным адресами «192.168.ZZZ.1ХХ» и «192.168.ZZZ.1ХХ+1», а также с удаленными датаграммным и виртуальным адресами «192.168.ZZZ.1ХХ+2» и «192.168.ZZZ.1ХХ+3». Выполнить с помощью функции gethostbyname получение указателей на структуры, характеризующие имена и адреса узлов.
1.3.5. Общее задание для всех студентов. Выполнить привязку всех подготовленных адресов и сокетов. Спровоцировать возврат функцией bind значения SOCKET_ERROR по причине:
Код ошибки Описание
WSANOTINITIALISED Перед использованием функции необходимо вызвать функцию WSAStanup
WSAENETDOWN Сбой в сети
WSAEADDRINUSE Указанный адрес уже используется
WSAEFAULT Значение параметра namelen меньше размера структуры sockaddr
WSAEINPROGRESS Выполняется блокирующая функция интерфейса WindowsSockets
WSAEAFNOSUPPORT Этот протокол не может работать с указанным семейством адресов
WSAEINVAL Сокет уже привязан к адресу
WSAENOBUFS Установлено слишком много соединений
WSAENOTSOCK Указанный в параметре дескриптор не является сокетом
1.3.6. Общее задание для всех студентов. Для освобождения ресурсов последовательно закрыть все сокеты и завершить работу приложения с Windows Sockets.
1.3.7. Общее задание для всех студентов. По результатам лабораторной работы подготовить полный протокол, включающий формулировку пунктов задания, краткое описание реализации каждого из пунктов задания с фрагментами кода, выводы по каждому из пунктов задания.
Лабораторная работа № 2. 2. Создание канала связи
Если следует передавать датаграммные сообщения при помощи протокола негарантированной доставки UDP, канал связи не нужен. Сразу после создания сокетов и их инициализации можно приступать к передаче данных. Но для передачи данных с использованием протокола TCP необходимо создать канал связи.