Учебное пособие. — Ярославль — ЯрГУ, 2009 г. — 213 с.
На практических примерах рассмотрены основные моменты разработки сетевых Windows-приложений для платформы Win32 с использованием среды Microsoft Visual Studio и библиотеки MFC.
Рекомендуется студентам, обучающимся по специальностям 010501 Прикладная математика и информатика (дисциплина специализации "Программирование в Windows и сетях Windows") и 010503 Математическое обеспечение и администрирование информационных систем (дисциплина специализации "Программирование в сетях Windows") очной формы обучения.
В 2007 году автором было издано учебное пособие
Васильчиков В.В. Основы разработки сетевых Windows-приложений, предназначенное для поддержки лекционного курса по программированию в сетях Windows, читавшегося автором для студентов факультета ИВТ ЯрГУ, обучающихся по специальностям "Прикладная математика и информатика" и "Математическое обеспечение и администрирование информационных систем". В нем были рассмотрены существующие технологии и Win32 API-функции, использующиеся для создания сетевых приложений различных версий ОС Windows. В упомянутом учебном пособии, разумеется, присутствовали практические примеры для иллюстрации рассматриваемых средств и приемов программирования. Все примеры программ были написаны на языке C как консольные приложения и не были привязаны к использованию какой-либо конкретной среды программирования.
Использование таких примеров, как показал опыт преподавания данной дисциплины, не слишком удобно: в них отсутствует привычный графический интерфейс, они сложнее воспринимаются как при отладке, так и при использовании. При переносе этого кода в приложение с традиционным Windows-интерфейсом приходится вносить много изменений в проекты. Например, использование библиотеки MFC накладывает изрядное количество ограничений на использование объектов в многопоточной среде, способы порождения и синхронизации потоков.
Кроме того, нужно знать, какие библиотеки следует подключать для использования тех или иных возможностей.
Поэтому в настоящем учебном пособии автору хотелось бы привести примеры программирования сетевых приложений именно с Windows-интерфейсом и с использование библиотеки MFC. Собственно, на учебных занятиях в компьютерных классах именно эти примеры в настоящее время и используются.
Изначально в качестве среды разработки предполагалось использование Microsoft Visual Studio версии 6.0, поскольку именно эта среда выступает в качестве основной при изучении курса "Программирование в Windows". Однако все проекты легко (автоматически) конвертируются для использования в более свежих версиях Visual Studio. По крайней мере, вплоть до Visual Studio 2008 никаких проблем с преобразованием проектов автор не заметил.
Следует отметить, что в настоящем учебном пособии нет никаких сведений теоретического плана – только практические примеры. Кроме того, предполагается, что читателями знают язык программирования C++, умеют пользоваться одной из версий среды Microsoft Visual Studio, имеют опыт работы с библиотекой MFC. Особое внимание следует обратить на навыки разработки многопоточных MFC-приложений, понимание и умение использовать средства синхронизации, предоставляемые этой библиотекой и Win32 API.
Содержание
Введение
Интерфейс NetBIOSБиблиотека общих функций для приложений NetBIOS.
Эхо-клиент на основе сетевого интерфейса NetBIOS.
Эхо-сервер NetBIOS, использующий функции обратного вызова.
Эхо-сервер NetBIOS, основанный на модели событий.
Приложение для посылки и приема дейтаграмм с использованием интерфейса NetBIOS.
Перенаправитель. Пример создания файла по UNC-соединению.
Почтовые ящики. Простой сервер почтовых ящиков.
Простой клиент почтовых ящиков.
Именованные каналы. Пример многопоточного эхо-сервера именованных каналов.
Простой клиент именованных каналов.
Пример эхо-сервера именованных каналов работающего в режиме перекрытого ввода-вывода.
Сетевые протоколы. Перечисление установленных в системе сетевых протоколов.
Основы интерфейса Winsock. Эхо-сервер на основе протокола TCP.
Клиент для эхо-сервера на основе протокола TCP.
Получатель дейтаграмм на основе протокола UDP.
Отправитель дейтаграмм на основе протокола UDP.
Ввод-вывод в Winsock. Эхо-сервер на основе модели select().
Эхо-сервер на основе модели AsyncSelect().
Эхо-сервер на основе модели EventSelect().
Эхо-сервер на основе модели перекрытого ввода-вывода.
Эхо-сервер на основе модели перекрытого ввода-вывода с использованием процедур завершения.
Эхо-сервер на основе модели портов завершения.
Эхо-сервер на основе модели перекрытого ввода-вывода с использованием AcceptEx().
Эхо-сервер на основе модели перекрытого ввода-вывода с использованием процедур завершения и функции AcceptEx().
Многоадресная рассылка в сетях IP. Многоадресная рассылка в сетях IP с использованием Winsock 1
Организация многоадресной рассылки в сетях IP средствами Winsock 2.
Литература.© Ярославский государственный университет, 2009
© В.В.Васильчиков, 2009