Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634699)
Контекстум
.

Основы разработки сетевых Windows-приложений (290,00 руб.)

0   0
Первый авторВасильчиков В. В.
АвторыЯросл. гос. ун-т
ИздательствоЯрГУ
Страниц212
ID206944
АннотацияРассмотрены основные моменты разработки сетевых приложений для платформы Win32, сетевые функции Windows, а также наиболее распространенные сетевые протоколы. Библиогр.: 5 назв.
Кем рекомендованоНаучно-методическим советом университета для студентов специальностей Прикладная математика и информатика, Математическое обеспечение и администрирование информационных систем
Кому рекомендованоРекомендуется студентам, обучающимся по специальностям 010501 Прикладная математика и информатика (дисциплина специализации "Программирование в Windows и сетях Windows") и 010503 Математическое обеспечение и администрирование информационных систем (дисциплина специализации "Программирование в сетях Windows") очной формы обучения.
ISBN978-5-8397-0533-3
УДК004.4:004.7
ББК3973.202я73
Васильчиков, В. В. Основы разработки сетевых Windows-приложений : учеб. пособие / Яросл. гос. ун-т; В. В. Васильчиков .— Ярославль : ЯрГУ, 2007 .— 212 с. : ил. — ISBN 978-5-8397-0533-3 .— URL: https://rucont.ru/efd/206944 (дата обращения: 25.04.2024)

Предпросмотр (выдержки из произведения)

Первые главы посвящены рассмотрению несколько устаревших, однако все еще использующихся технологий: интерфейса NetBIOS, перенаправителей Windows, почтовых ящиков и именованных каналов. <...> Далее рассматривается API-интерфейс Winsock, наиболее распространенные сетевые протоколы Winsock, базовая модель программирования клиент-сервер и соответствующие функции, предоставляемые Win32 API. <...> 3 Интерфейс NetBIOS Network Basic Input/Output System (NetBIOS) – стандартный интерфейс прикладного программирования, разработанный еще в 1983 году. <...> В 1985 году фирма IBM сформировала цельный протокол NetBIOS Extended User Interface (NetBEUI), интегрированный с интерфейсом NetBIOS. <...> В настоящее время NetBIOS используется многими приложениями и операционными системами, включая все варианты Windows (Windows CE не дает возможности использовать NetBIOS API). <...> Номера LANA Основное понятие интерфейса NetBIOS – это номера сетевых адаптеров (Local Area Network Adapter, LANA). <...> Первоначально каждому 5 физическому сетевому адаптеру присваивалось уникальное значение – номер LANA. <...> Номер LANA соответствует уникальным сочетаниям сетевого адаптера с транспортным протоколом. <...> Например, если на компьютере установлено две сетевых платы и два поддерживающих NetBIOS сетевых протокола, то их сочетаниям будет присвоено четыре номера LANA. <...> Имена NetBIOS Приложение регистрирует имя на каждом номере LANA, с которым ему требуется связаться. <...> Имя NetBIOS имеет длину 16 символов, причем 16 символ зарезервирован для специальных целей (определяет сетевую службу Microsoft, более подробно этот вопрос не рассматриваем). <...> Основы программирования NetBIOS API-интерфейс NetBIOS содержит всего одну функцию: UCHAR Netbios (PNCB pncb); 6 Все объявления функций, константы и т.п. определены в заголовочном файле Nb30.h. <...> Параметр функции Netbios является указателем на блок сетевого управления (network control block, NCB). <...> Структура NCB определена следующим образом: typedef struct _NCB { UCHAR ncb_command; UCHAR ncb_retcode; UCHAR ncb_lsn; UCHAR ncb_num; PUCHAR ncb_buffer; WORD ncb_length; UCHAR ncb_callname[NCBNAMSZ]; UCHAR ncb_name[NCBNAMSZ]; UCHAR ncb_rto; UCHAR ncb_sto; void (CALLBACK *ncb_post) (struct _NCB *); UCHAR <...>
Основы_разработки_сетевых_Windows-приложений__учебное_пособие.pdf
Стр.1
Стр.2
Стр.3
Стр.208
Стр.209
Стр.210
Стр.211
Стр.212
Основы_разработки_сетевых_Windows-приложений__учебное_пособие.pdf
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Ярославский государственный университет им. П.Г.Демидова В.В. Васильчиков Основы разработки сетевых Windows-приложений Учебное пособие Рекомендовано Научно-методическим советом университета для студентов специальностей Прикладная математика и информатика и Математическое обеспечение и администрирование информационных систем Ярославль 2007
Стр.1
УДК 004.4:004.7 ББК 3973.202я73 В 19 Рекомендовано Редакционно-издательским советом университета в качестве учебного издания. План 2007 года Рецензенты: кандидат физико-математических наук С.И. Щукин; кафедра теории и методики обучения информатике ЯГПУ им. К.Д. Ушинского В 19 Васильчиков, В.В. Основы разработки сетевых Windowsприложений : учебное пособие / В.В. Васильчиков ; Яросл. гос. ун-т. – Ярославль : ЯрГУ, 2007. – 212 с. ISBN 978-5-8397-0533-3 Рассмотрены основные моменты разработки сетевых приложений для платформы Win32, сетевые функции Windows, а также наиболее распространенные сетевые протоколы. Рекомендуется студентам, обучающимся по специальностям 010501 Прикладная математика и информатика (дисциплина специализации "Программирование в Windows и сетях Windows") и 010503 Математическое обеспечение и администрирование информационных систем (дисциплина специализации "Программирование в сетях Windows") очной формы обучения. Библиогр.: 5 назв. УДК 004.4:004.7 ББК 3973.202я73 © Ярославский государственный университет, 2007 ISBN 978-5-8397-0533-3 © В.В. Васильчиков, 2007 2
Стр.2
Введение Данное учебное пособие написано на основе лекционного курса по программированию в сетях Windows, читавшегося автором для студентов факультета ИВТ ЯрГУ, обучающихся по специальности "Математическое обеспечение и администрирование информационных систем". В пособии рассмотрены существующие технологии и Win32 APIфункции, использующиеся для создания сетевых приложений различных версий ОС Windows. При этом все, что говорится о Windows 2000, остается в силе и для более свежих версий операционной системы. Первые главы посвящены рассмотрению несколько устаревших, однако все еще использующихся технологий: интерфейса NetBIOS, перенаправителей Windows, почтовых ящиков и именованных каналов. Далее рассматривается API-интерфейс Winsock, наиболее распространенные сетевые протоколы Winsock, базовая модель программирования клиент-сервер и соответствующие функции, предоставляемые Win32 API. При этом основное внимание уделялось программированию протоколов, построенных на базе протокола IP. Наконец, последняя глава коротко описывает основные моменты работы с сервером удаленного доступа RAS, используемого для коммутируемого доступа к Интернет. Основная часть учебного материала и исходных кодов взята из книги Джонса и Оланда [1]. Все примеры программ написаны на языке С и не привязаны к использованию какой-либо конкретной среды программирования. При этом для организации работы с сетью используются только Win32 API-функции. Читателям, интересующимся более высокоуровневыми средствами, например классами библиотеки MFC для работы в сети, можно порекомендовать обратиться к книгам Олафсена, Скрайбера и Уайта [3], Круглински, Уингоу и Шеферда [4], а также к документации MSDN. Однако для понимания устройства и работы этих классов все же настоятельно рекомендуется изучить использование соответствующих функций Win32 API. Для удобства использования все исходные коды, сгруппированные по темам учебного курса (а на них в тексте пособия постоянно встречаются ссылки), доступны в локальной сети факультета. Для лабораторных занятий студентам предлагаются задания по разработке программ, функционально эквивалентных рассмотренным, однако имеющих привычный оконный интерфейс. В качестве среды разработки предполагается использование Microsoft Visual Studio версии 6.0. Проекты структурированы по темам учебного курса. Предполагаемый результат находится в папке Solution. Стартовый проект (заготовка с предлагаемым интерфейсом) находится в папке Starter. Инструкции по выполнению задания помещены в файл ToDo.doc. 3
Стр.3
Оглавление Введение .............................................................................................................. 3 Интерфейс NetBIOS .......................................................................................... 4 NetBIOS и сетевая модель OSI ..................................................................... 4 Интерфейс Microsoft NetBIOS ........................................................................ 5 Номера LANA ................................................................................................ 5 Имена NetBIOS .............................................................................................. 6 Основы программирования NetBIOS .............................................................. 6 Синхронный и асинхронный вызов ............................................................. 8 Типовые процедуры NetBIOS ........................................................................... 8 Общие функции приложений NetBIOS ....................................................... 8 Сервер сеансов: модель асинхронного обратного вызова ...................... 13 Пример сервера, основанный на модели событий ................................... 17 Клиент сеанса NetBIOS ............................................................................... 22 Дейтаграммные операции ............................................................................. 25 Дополнительные команды NetBIOS .............................................................. 27 Проверка состояния адаптера (команда NCBASTAT) ............................ 27 Команда поиска имени (NCBFINDNAME) ............................................... 28 Сопоставление протоколов номерам LANA ............................................. 29 Перенаправитель ............................................................................................. 30 Универсальные правила именования ............................................................. 30 Поставщик нескольких UNC ......................................................................... 31 Компоненты сетевого доступа ................................................................... 31 Перенаправитель ............................................................................................ 31 Протокол SMB ................................................................................................ 32 Пример ............................................................................................................. 32 Почтовые ящики ............................................................................................. 34 Имена почтовых ящиков ............................................................................. 34 Размеры сообщений ..................................................................................... 34 Сборка приложения и коды возврата ........................................................ 35 Использование архитектуры клиент-сервер .............................................. 35 Сервер почтовых ящиков ............................................................................ 35 Клиент почтовых ящиков ........................................................................... 37 Дополнительные API-функции почтовых ящиков ...................................... 39 Особенности работы в Windows 9x ............................................................. 40 Правила наименования ............................................................................... 40 Неспособность отменить блокирующие запросы ввода-вывода ........... 40 Утечки памяти .............................................................................................. 40 Именованные каналы .................................................................................... 41 Детали реализации именованных каналов ................................................... 41 Правила именования каналов ..................................................................... 41 Режимы передачи ........................................................................................ 41 Сборка приложения и коды возврата ........................................................ 42 208
Стр.208
Простой сервер и клиент .............................................................................. 42 Детали реализации сервера ........................................................................ 42 Усовершенствованный сервер каналов ........................................................ 45 Реализация клиента ..................................................................................... 51 Другие API-вызовы ......................................................................................... 53 Сетевые протоколы ........................................................................................ 56 Интерфейс прикладного программирования Winsock ............................ 56 Характеристики протоколов ....................................................................... 56 Ориентированность на передачу сообщений ........................................... 56 Обмен данными с соединением и без него ............................................... 57 Надежность и порядок доставки сообщений ............................................ 58 Корректное завершение работы ................................................................. 58 Широковещание ........................................................................................... 58 Многоадресное вещание ............................................................................. 58 Качество обслуживания .............................................................................. 59 Фрагментарные сообщения ........................................................................ 59 Маршрутизация ........................................................................................... 59 Сетевые протоколы, поддерживаемые Win32 ........................................... 59 Сетевые протоколы в Windows CE ............................................................ 61 Работа с Winsock ........................................................................................... 61 Инициализация Winsock ............................................................................. 61 Информация о протоколе ........................................................................... 61 Сокеты Windows .......................................................................................... 63 Семейства адресов и разрешение имен ....................................................... 66 Протокол IP .................................................................................................... 66 Протоколы TCP и UDP ............................................................................... 66 Адресация ..................................................................................................... 66 Порядок байтов ............................................................................................ 67 Создание сокета ........................................................................................... 68 Разрешение имен ......................................................................................... 68 Номера портов ............................................................................................. 69 Инфракрасные сокеты .................................................................................. 70 Адресация ..................................................................................................... 70 Разрешение имен ......................................................................................... 70 Нумерация IrDA-устройств ........................................................................ 70 Создание сервера и клиента для IrSock ..................................................... 72 Опрос IAS ..................................................................................................... 72 Создание сокета ........................................................................................... 73 Протоколы IPX/SPX ....................................................................................... 73 Адресация ..................................................................................................... 74 Создание сокета ........................................................................................... 74 Привязка сокета ............................................................................................. 75 Внутренний номер сети .............................................................................. 75 Установка типа пакета ................................................................................ 76 209
Стр.209
Протоколы NetBIOS ....................................................................................... 76 Адресация ..................................................................................................... 76 Создание сокета ........................................................................................... 77 Протокол AppleTalk ....................................................................................... 77 Адресация ..................................................................................................... 78 Регистрация имени AppleTalk .................................................................... 78 Разрешение имен AppleTalk ....................................................................... 80 Создание сокета ........................................................................................... 80 Протокол ATM ................................................................................................ 81 Адресация ..................................................................................................... 81 Создание сокета ........................................................................................... 83 Привязка сокета к SAP ................................................................................ 84 Дополнительные функции Winsock 2 ............................................................ 84 Основы интерфейса Winsock ........................................................................ 85 Инициализация Winsock ................................................................................. 85 Проверка и обработка ошибок ..................................................................... 86 Протоколы с установлением соединения .................................................... 86 Серверные API-функции ............................................................................. 86 Функция bind ................................................................................................ 87 Функция listen .............................................................................................. 87 Функции accept и WSAAccept .................................................................... 87 API-функции клиента .................................................................................. 88 Функции connect и WSAConnect ................................................................ 88 Передача данных: функции send и WSASend ........................................... 89 Функция WSASendDisconnect .................................................................... 90 Функции recv и WSARecv .......................................................................... 90 Функция WSARecvDisconnect .................................................................... 91 Функция WSARecvEx ................................................................................. 91 Потоковые протоколы ................................................................................. 91 Завершение сеанса: функции shutdown и closesocket .............................. 93 Примеры ....................................................................................................... 93 Протоколы, не требующие соединения ..................................................... 101 Приемник .................................................................................................... 101 Отправитель ............................................................................................... 102 Протоколы, ориентированные на передачу сообщений ........................ 102 Пример ........................................................................................................ 102 Дополнительные функции API .................................................................... 104 Ввод-вывод в Winsock .................................................................................. 106 Поддерживаемые модели ввода-вывода ................................................. 106 Режимы работы сокетов ........................................................................... 106 Блокирующий режим ................................................................................ 106 Неблокирующий режим ............................................................................ 109 Модели управления вводом-выводом сокетов ........................................... 109 Модель select .............................................................................................. 109 210
Стр.210
Модель WSAAsyncSelect .......................................................................... 111 Модель WSAEventSelect ........................................................................... 115 Модель перекрытого ввода-вывода ......................................................... 120 Модель портов завершения ...................................................................... 126 Параметры сокета и команды управления вводом-выводом ............. 133 Параметры сокета ...................................................................................... 133 Уровень SOL_SOCKET ............................................................................. 134 Уровень параметров IPPROTO_IP ........................................................... 137 Уровень параметров IPPROTO_TCP ....................................................... 141 Функции ioctlsocket и WSAIoctl .................................................................... 141 Стандартные ioctl-команды ...................................................................... 142 Другие ioctl-команды ................................................................................ 143 Ioctl-команды для ATM ............................................................................. 147 Регистрация и разрешение имен ................................................................ 148 Модели пространства имен ........................................................................ 148 Перечень пространств имен ....................................................................... 149 Регистрация службы ................................................................................... 150 Определение класса службы .................................................................... 150 Регистрация экземпляра службы ............................................................. 153 Запрос к службе ............................................................................................ 157 Создание запроса ....................................................................................... 157 Запрос к DNS .............................................................................................. 160 Многоадресная рассылка ............................................................................ 163 Основные понятия ........................................................................................ 163 Многоадресная рассылка в сетях IP .......................................................... 165 Протокол IGMP .......................................................................................... 165 Листовые узлы IP ....................................................................................... 166 Многоадресная рассылка в сетях ATM ...................................................... 166 Листовые узлы ATM ................................................................................. 167 Корневые узлы ATM ................................................................................. 167 Многоадресная рассылка с использованием Winsock ............................... 167 Рассылка средствами Winsock 1 .............................................................. 167 Рассылка средствами Winsock 2 .............................................................. 174 Общие параметры Winsock ....................................................................... 185 Простые сокеты ............................................................................................. 187 Создание простого сокета ......................................................................... 187 Протокол ICMP ............................................................................................ 188 Пример: программа Ping ........................................................................... 188 Программа Traceroute ................................................................................ 198 Служба удаленного доступа ........................................................................ 199 Компиляция и компоновка ........................................................................... 200 Структуры данных и совместимость платформ ................................... 200 Функция RasDial ........................................................................................... 200 Синхронный режим ................................................................................... 201 211
Стр.211
Асинхронный режим ................................................................................. 202 Уведомление о состоянии ......................................................................... 205 Завершение соединения ............................................................................ 206 Литература ...................................................................................................... 207 Учебное издание Васильчиков Владимир Васильевич Основы разработки сетевых Windows-приложений Учебное пособие Редактор, корректор А.А. Аладьева Подписано в печать 22.03.2007 г. Формат 60х84/16. Бумага тип. Усл. печ. л. 12,32. Уч.-изд. л. 8,12. Тираж 100 экз. Заказ Оригинал-макет подготовлен в редакционно-издательском отделе ЯрГУ. Ярославский государственный университет. 150000 Ярославль, ул. Советская, 14. Отпечатано ООО «Ремдер» ЛР ИД № 06151 от 26.10.2001. г. Ярославль, пр. Октября, 94, оф. 37 тел. (4852) 73-35-03, 58-03-48, факс 58-03-49. 212
Стр.212