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

Разработка сетевых приложений для ОС Windows (практические примеры) (290,00 руб.)

0   0
Первый авторВасильчиков В. В.
Авторы Яросл. гос. ун-т им. П. Г Демидова
ИздательствоЯрГУ
Страниц216
ID237420
Аннотация"На практических примерах рассмотрены основные моменты разработки сетевых Windows-приложений для платформы Win32 с использованием среды Microsoft Visual Studio и библиотеки MFC. Предназначено для студентов, обучающихся по специальностям 010501 Прикладная математика и информатика и 010503 Математическое обеспечение и администрирование информационных систем (дисциплина специализации ""Программирование в сетях Windows"", блок ДС, СД), очной формы обучения. Библиогр.: 7 назв. "
ISBN978-5-8397-0659-0
УДК519.2
ББК3973.2-018я73
Васильчиков, В. В. Разработка сетевых приложений для ОС Windows (практические примеры) : учеб. пособие / Яросл. гос. ун-т им. П. Г Демидова; В. В. Васильчиков .— Ярославль : ЯрГУ, 2009 .— 216 с. — ISBN 978-5-8397-0659-0 .— URL: https://rucont.ru/efd/237420 (дата обращения: 16.04.2024)

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

Для этого мы разработаем четыре приложения: • • • • клиентское приложение, предназначенное для работы с эхо-сервером; эхо-сервер на основе использования функций обратного вызова; эхо-сервер, основанный на модели событий. <...> Содержание файла nbcommon.h приводится ниже: #include <windows.h> #include <nb30.h> 5 библиотеку общих функций для приложений NetBIOS (используются как сервером, так и клиентом); extern "C" int Recv(int lana, int lsn, char *buffer, DWORD *len); extern "C" int Send(int lana, int lsn, char *data, DWORD len); extern "C" int AddName(int lana, char *name, int *num); extern "C" int DelName(int lana, char *name); extern "C" int AddGroupName(int lana, char *name, int *num); extern "C" int ResetAll(LANA_ENUM *lenum, UCHAR ucMaxSession, UCHAR ucMaxName, BOOL bFirstName); extern "C" int LanaEnum(LANA_ENUM *lenum); extern "C" int Hangup(int lana, int lsn); extern "C" int Cancel(PNCB pncb); extern "C" int FormatNetbiosName(char *nbname, char *outname); extern "C" char NbCommonErrorMsg[]; Строка NbCommonErrorMsg предназначена для записи сообщения с описанием последней произошедшей ошибки для того, чтобы вызывающая функция могла вывести это сообщение с учетом используемого ею пользовательского интерфейса. <...> Функция предназначена для перечисления всех номеров LANA. int LanaEnum(LANA_ENUM *lenum) { NCB ncb; NbCommonErrorMsg[0]=0; ZeroMemory(&ncb, sizeof(NCB)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (PUCHAR)lenum; ncb.ncb_length = sizeof(LANA_ENUM); if (Netbios(&ncb) ! <...> Функция осуществляет сбор сведений о LANA, перечисленных в структуре LANA_ENUM, а также настройку среды NetBIOS: максимальное число сеансов, максимальный размер таблицы имен, использование первого NetBIOS имени. int ResetAll(LANA_ENUM *lenum, UCHAR ucMaxSession, UCHAR ucMaxName, BOOL bFirstName) { NCB int ncb; i; NbCommonErrorMsg[0]=0; ZeroMemory(&ncb, sizeof(NCB)); ncb.ncb_command = NCBRESET; ncb.ncb_callname[0] = ucMaxSession; ncb.ncb_callname[2] = ucMaxName; ncb.ncb_callname[3] = (UCHAR)bFirstName; 7 <...>
Разработка_сетевых_приложений_для_ОС_Windows_(практические_примеры)_учебное_пособие.pdf
Министерство образования и науки Российской Федерации Федеральное агентство по образованию Ярославский государственный университет им. П. Г. Демидова В. В. Васильчиков Разработка сетевых приложений для ОС Windows (практические примеры) Учебное пособие Рекомендовано Научно-методическим советом университета для студентов, обучающихся по специальностям Прикладная математика и информатика и Математическое обеспечение и администрирование информационных систем Ярославль 2009
Стр.1
УДК 519.2 ББК 3973.2-018я73 В 19 Рекомендовано Редакционно-издательским советом университета в качестве учебного издания. План 2009 года Рецензенты: кандидат физико-математических наук С. И. Щукин; кафедра теории и методики обучения информатике ЯГПУ им. К. Д. Ушинского В 19 Васильчиков, В. В. Разработка сетевых приложений для ОС Windows (практические примеры) : учебное пособие / В. В. Васильчиков ; Яросл. гос. ун-т им. П. Г Демидова. – Ярославль : ЯрГУ, 2009. – 214 с. ISBN 978-5-8397-0659-0 На практических примерах рассмотрены основные моменты разработки сетевых Windows-приложений для платформы Win32 с использованием среды Microsoft Visual Studio и библиотеки MFC. Предназначено для студентов, обучающихся по специальностям 010501 Прикладная математика и информатика и 010503 Математическое обеспечение и администрирование информационных систем (дисциплина специализации "Программирование в сетях Windows", блок ДС, СД), очной формы обучения. Библиогр.: 7 назв. УДК 519.2 ББК 3973.2-018я73 ISBN 978-5-8397-0659-0 © Ярославский государственный университет им. П. Г. Демидова, 2009 2
Стр.2
Введение В 2007 году автором было издано учебное пособие [7], предназначенное для поддержки лекционного курса по программированию в сетях Windows, читавшегося для студентов факультета ИВТ ЯрГУ, обучающихся по специальностям "Прикладная математика и информатика" и "Математическое обеспечение и администрирование информационных систем". В нем были рассмотрены существующие технологии и Win32 API-функции, использующиеся для создания сетевых приложений различных версий ОС Windows. В упомянутом учебном пособии, разумеется, присутствовали практические примеры для иллюстрации рассматриваемых средств и приемов программирования. Все примеры программ были написаны на языке C как консольные приложения и не были привязаны к использованию какой-либо конкретной среды программирования. Использование таких примеров, как показал опыт преподавания данной дисциплины, не слишком удобно: в них отсутствует привычный графический интерфейс, они сложнее воспринимаются как при отладке, так и при выполнении. При переносе этого кода в приложение с традиционным Windows-интерфейсом приходится вносить много изменений в проекты. Например, использование библиотеки MFC накладывает изрядное количество ограничений на взаимодействие объектов в многопоточной среде, способы порождения и синхронизации потоков. Кроме того, нужно знать, какие библиотеки следует подключать для того, чтобы воспользоваться теми или иными возможностями. Поэтому в настоящем учебном пособии автору хотелось бы привести примеры программирования сетевых приложений именно с Windowsинтерфейсом и с использованием библиотеки MFC. Собственно, на учебных занятиях в компьютерных классах именно эти примеры в настоящее время и используются. Все исходные коды, сгруппированные по темам учебного курса, доступны в локальной сети факультета. Проекты структурированы по темам учебного курса. Предполагаемый результат находится в папке Solution. Стартовый проект (заготовка с предлагаемым интерфейсом) находится в папке Starter. Как правило, стартовый проект содержит пользовательский интерфейс, чтобы студенты не тратили время на его разработку. В ряде случаев в нем также проделана часть рутинной работы: подключение библиотек, заголовочных файлов, объявление некоторых констант и переменных. Иногда также присутствует реализация некоторых обработчиков событий. Инструкции по выполнению задания помещены в файл ToDo.doc. Там используется следующее соглашение о шрифтах: код, который должен быть добавлен в проект, набран полужирным шрифтом. Обычный шрифт означает, что данный код в проекте уже присутствует. 3
Стр.3
Во избежание недоразумений автору хотелось бы обратить внимание на одну особенность нумерации предлагаемых примеров программ. Поскольку некоторые из рассматриваемых в учебном курсе тем не предполагают выполнения практических заданий, названия глав в данном пособии не полностью соответствуют таковым в учебном пособии [7] (некоторые выпущены). Однако для удобства студентов нумерация примеров базируется на номерах тем учебного курса и потому не является сплошной. Изначально в качестве среды разработки предполагалось использование Microsoft Visual Studio версии 6.0, поскольку именно эта среда выступает в качестве основной при изучении курса "Программирование в Windows". Однако все проекты легко (автоматически) конвертируются для использования в более свежих версиях Visual Studio. По крайней мере, вплоть до Visual Studio 2008 никаких проблем с преобразованием проектов автор не заметил. Следует отметить, что в настоящем учебном пособии нет никаких сведений теоретического плана – только практические примеры. Вся необходимая предварительная информация содержится, например, в учебном пособии [7]. Кроме того, предполагается, что читатели знают язык программирования C++, умеют пользоваться одной из версий среды Microsoft Visual Studio, имеют опыт работы с библиотекой MFC. Особое внимание следует обратить на навыки разработки многопоточных MFCприложений, понимание и умение использовать средства синхронизации, предоставляемые этой библиотекой и Win32 API. В качестве издания, где в достаточно компактном виде изложен весь необходимый материал, можно порекомендовать [6]. Во всех примерах для организации работы с сетью используются только Win32 API-функции. Читателям, интересующимся более высокоуровневыми средствами, например классами библиотеки MFC для работы в сети, можно порекомендовать обратиться к книгам Олафсена, Скрайбера и Уайта [3], Круглински, Уингоу и Шеферда [4], а также к документации MSDN. Однако для понимания устройства и работы этих классов все же настоятельно рекомендуется изучить использование соответствующих функций Win32 API. 4
Стр.4
Интерфейс NetBIOS В рамках данной темы предполагается отработать основные операции для организации передачи данных с использованием сетевого интерфейса NetBIOS. Сначала рассматривается вопрос об организации передачи данных в рамках модели "сервер – клиент" с установлением соединения. Для этого мы разработаем четыре приложения: • • • • клиентское приложение, предназначенное для работы с эхо-сервером; эхо-сервер на основе использования функций обратного вызова; эхо-сервер, основанный на модели событий. Далее разбирается пример организации передачи данных в виде дейтаграмм без установления постоянного соединения. В качестве примера читателям предлагается разработать приложение, которое может выступать в роли как отправителя, так и получателя дейтаграмм. Пример 1.1. Библиотека общих функций для приложений NetBIOS Конечной целью данного задания является разработка библиотеки функций, выполняющих типичные для приложения NetBIOS задачи: работа с номерами LANA, настройка среды NetBIOS, работа с таблицами имен и т. п. Эта библиотека (результирующий файл NbCommon.lib) будет нами использоваться для разработки уже конкретных приложений, использующих интерфейс NetBIOS. Создание проекта С использованием мастера AppWizard сгенерируем проект статической Win32 библиотеки с именем NbCommon. В процессе прохождения шагов генерации отметим флажок поддержки MFC, но не будем использовать Pre-compiled Header. Заголовочный файл библиотеки Файл nbcommon.h содержит директивы для подключения необходимых системных заголовочных файлов, а также прототипы функций, образующих нашу библиотеку. Модификатор extern "C" необходим для успешной компоновки в Visual Studio приложений, использующих данную библиотеку. Содержание файла nbcommon.h приводится ниже: #include #include 5 библиотеку общих функций для приложений NetBIOS (используются как сервером, так и клиентом);
Стр.5

Облако ключевых слов *


* - вычисляется автоматически
.
.