- •Содержание
- •Предисловие
- •Лабораторная работа №1
- •Цель работы
- •Методические указания
- •Общая информация о протоколах
- •Стек протоколов Интернета
- •Сетевое оборудование
- •Физическая среда передачи
- •Принцип взаимодействия прикладной программы с системным программным обеспечением
- •Анализ структуры локальной сети факультета пми
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №2
- •Цель работы
- •Методические указания
- •Описание функций работы с сокетами
- •Методы, которые реализуют api-интерфейс сокетов
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №3
- •Цель работы
- •Методические указания
- •Потоки управления
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Идентификация страницы
- •Взаимодействие типа клиент/сервер
- •Передача документов Web и протокол http
- •Архитектура программного обеспечения браузера
- •Кэширование в Web-браузерах
- •Поддержка кэширования протоколом http
- •Альтернативные протоколы передачи
- •Основные типы документов Web
- •Преимущества и недостатки документов каждого типа
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Цель работы
- •Методические указания Передача фреймов по сети
- •Способы адресации
- •Широковещательная рассылка
- •Групповая рассылка
- •Определение содержимого фрейма
- •Заголовки фрейма и его формат
- •Формат фрейма Ethernet
- •Фреймы, не обеспечивающие автоматическое распознавание типа
- •Задание к лабораторной работе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Цель работы
- •Методические указания
- •Основы протокола icmp
- •Реализация
- •Реализация с использованием Windows api
- •Задание к лабораторной работе
- •Стандарт ieee 802.11 и его расширение 802.11b/g
- •Режимы работы 802.11
- •Физический уровень 802.11
- •Метод fhss
- •Метод dsss
- •Расширение стандарта 802.11
- •Канальный (Data Link) уровень 802.11
- •Подключение к сети
- •Поддержка потоковых данных
- •Безопасность
- •Построение Wi-Fi
- •Что нужно учитывать, при построении wlan
- •Архитектуры
- •Вопросы безопасности
- •Проектирование и реализация аппаратного и программного обеспечения Аппаратное обеспечение терминального класса №208б
- •Настройки клиента и сервера для различных ос
- •Работа с базой данных, содержащей mac-адреса
- •Исследование уровня сигнала на территории факультета пми
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Список литературы
- •Приложение а Пример api-интерфейса прикладного
- •Пример кода эхо-сервера
- •Пример кода клиента службы эхо-повтора
- •Приложение б Пример api-интерфейса прикладного
- •Класс Server
- •Класс Client
- •Модуль transform
- •Пример кода эхо-сервера
- •Пример кода клиента службы эхо-повтора
Класс Client
Объект класса Client создается вызовом
client.Client([fc]) -> client_object
При этом выполняется конструктор класса Client, инициализирующий объект и создающий графический интерфейс для работы с объектом. Объект класса клиент сразу после создания приведен на рисунке 4. Необязательный параметр fc по умолчанию равен 1. Если задать значение этого параметра нулевым, не будет вызвана функция, которая создает поле для ввода порта и кнопку “Connect”(при нажатии этой кнопки вызывается функция, которая посылает серверу запрос на соединение). То есть клиент будет состоять из поля для вывода информации, поля ввода строки и кнопок “Go” и “Quit”.
Метод make_contact класса Client используется клиентом для передачи серверу запроса на установление соединения.
make_contact() -> 0/-1
Метод не принимает параметров, поэтому, прежде чем его вызывать, нужно объекту – серверу задать номер порта и адрес удаленного компьютера для отправки запроса на соединение. Задание номера порта и компьютера классе Client, осуществляется так же как и в классе Server, так как в классе Client присутствуют такие же методы для этих целей. Возвращает 0 – если соединение выполнено удачно ,и значение -1, в случае неудачи. Метод устанавливает атрибут SOCK объекта-клиента, клиент применяет этот атрибут значение для передачи данных.
Остальные методы класса Client (методы отправки и получения данных и методы работы с графическими объектами) совпадают с методами класса Server, за исключением метода connect_server(), который используется для установления соединения с сервером с помощью формы, которая приведена на рис.2(кнопка Connect - при нажатии этой кнопки методом connect_server выполняется считывание и проверка данных, введенных пользователем, а затем вызывается метод make_contact).
Модуль transform
Так как пользователи сетевых приложений обычно используют не IP-адрес компьютера, а его символьное название, необходимо привести функции, которые позволяли бы выполнять преобразование имени хоста в его IP-адрес, а так же функцию, выполняющую преобразование имени программы в эквивалентное двоичное значение.
Функция cname_to_comp используется для преобразования имени компьютера в эквивалентное внутреннее двоичное значение.
cname_to_comp (compname) -> IPcomp
Этот вызов принимает один параметр строкового типа – имя компьютера, которое предназначено для восприятия человеком, и преобразует его в эквивалентное двоичное значение.
Функция appname_to_appnum используется для преобразования имени программы в эквивалентное внутренне двоичное значение.
appname_to_appnum (appname) ->appnum
Вызов принимает один параметр строкового типа – имя службы, предназначенное для восприятия человеком, и переводит его во внутренне значение.
Функция self_host возвращает имя и IP-адрес локальной машины:
self_host() -> (self_hostname, self_ip_address)
Далее приведены примеры прикладных программ, которые показывают, как этот API-интерфейс может применяться в клиентском и серверном программном обеспечении для обмена данными.