Асинхронные сокеты Windows

Страницы работы

Фрагмент текста работы

Асинхронные сокеты Windows

Операционная система Windows ориентирована на объект под названием «окно». В большинстве случаев «окно» — это просто кадр или поле, в котором программа может отображать данные. Windows посылает сообщения объекту «окно», если в системе происходят определенные события или если появляется сообщение от другого работающего приложения.

Каждое окно, открываемое программой, имеет собственный тип класса window. Класс window позволяет задавать параметры, такие как размер, цвет или расположение меню пользователя. Эти характеристики являются общими для всех окон, принадлежащих данному классу. Для каждого типа класса window существует процедура (функция), обрабатывающая сообщения для окон этого типа.

Класс window и процедура-обработчик сообщений соотносятся между собой просто. Каждый раз, когда Windows генерирует сообщение для определенного объекта, оно посылается процедуре класса window, связанной с этим объектом. Программа может открыть несколько окон одного и того же класса. Каждое окно, принадлежащее данному классу, называется его образцом (instance). Другими словами, в системе одновременно могут существовать несколько образцов одного и того же класса.

Если в системе несколько образцов, в процедуре-обработчике сообщений должен быть механизм распознавания, какому из образцов адресовано то или иное сообщение Windows. Для этого каждому образцу данного класса присваивается уникальный номер-дескриптор. Когда посылается сообщение, в нем, в качестве одной из составляющих, всегда передается дескриптор того образца, кому оно адресовано. Для того чтобы успешно программировать в оболочке Windows, необходимо четко сознавать взаимоотношения между классом window, процедурами и дескрипторами окон.

В Sockman добавляется поиск в DNS

Для ввода параметров используется диалоговое окно под названием IDD_TEXT. Окно IDD_TEXT является просто устроенным окном общего назначения и позволяет вводить информацию в пределах одной строки.

Программа Sockman2 дает возможность производить блокирующий или не блокирующий поиск компьютерного адреса в DNS по имени или по адресу в формате «десятичное с точкой». Для этого в программе предусмотрены две функции: синхронная LookupHostBlocking для блокирующего сокета и асинхронная LookupHostAsync.

Большинство задач по обработке сообщений Windows берут на себя три функции (WndProc, WinMain и DoMenuCommand). Главное окно Sockman передает сообщения WinMain, а она, в свою очередь - функции WndProc (главная функция-обработчик сообщений). Далее, все сообщения WM_COMMAND передаются в DoMenuCommand. Функция DoMenuCommand обслуживает все сообщения Windows, не касающиеся сетевой работы, например опции меню File или Help. По умолчанию DoMenuCommand передает все остальные сообщения функции DoWinsockProgram. На рис. 2 изображен маршрут движения сообщений в приложении Sockman.

Рис.2. Основной маршрут движения сообщений в приложении Sockman

В шаблоне Sockman заранее предусмотрено место для дальнейшего расширения списка решаемых задач. Однако вместо еще не реализованных функций Sockman выдает

Похожие материалы

Информация о работе