Используя открытие службы DNS в Windows
Открытие Службы DNS было записано с межплатформенной совместимостью в памяти. Поэтому все вызовы API Открытия Службы DNS, которые допустимы в OS X и iOS, также допустимы в Windows. Различие между этими двумя платформами заключается в том, как каждый обрабатывают, выполняют циклы. Следующие два раздела объяснят, какие изменения должны быть внесены для записи программ, использующих в своих интересах Открытие Службы DNS в Windows. Если Вы уже не будете, прежде, чем считать эти разделы, Вы захотите познакомиться с Открытием Службы DNS API и Microsoft Foundation classes.
Windows Graphical User Interfaces
Для надлежащего слияния Открытия Службы DNS в графический интерфейс пользователя Windows используйте WinSock WSAAsyncSelect
функция. WSAAsyncSelect
функция интегрирует основанные на сокете сетевые события в цикл сообщения Windows. Для использования этого в коде Windows необходимо сначала создать и инициализировать a DNSServiceRef
объект. Затем вызовите функцию WSAAsyncSelect
связать Ваш DNSServiceRef
сокет объекта с Windows передает цикл. WSAAsyncSelect
требует четырех параметров: сокет к Вашему DNSServiceRef
объект, окно для получения сообщения сообщения, которое будет отправлено, когда событие имеет место, и битовая маска для сетевых событий, Вы интересуетесь. Простой пример этого предоставлен ниже. В примере Вы видите, как создать a NULL
DNSServiceRef
возразите, инициализируйте ту ссылку с DNSServiceBrowse
, и затем добавьте его к циклу работы с WSAAsyncSelect
.
// create blank DNSServiceRef |
e = new ServiceHandlerEntry; |
... |
// initialize the DNSServiceRef for browsing |
err = DNSServiceBrowse( &e->ref, 0, 0, e->type, NULL, BrowseCallBack, e ); |
// add browsing to the work loop with WSAAsyncSelect |
// where m_hWnd is the window, WM_PRIVATE_SERVICE_EVENT is the message and |
// FD_READ and FD_CLOSE are bitmasks for reading and closing sockets |
err = WSAAsyncSelect((SOCKET) DNSServiceRefSockFD(e->ref), |
m_hWnd, |
WM_PRIVATE_SERVICE_EVENT, |
FD_READ|FD_CLOSE); |
Windows Command-Line Interfaces
Создание программы командной строки Windows с помощью Открытия Службы DNS подобно созданию того для OS X или iOS. Windows, как OS X и iOS, имеет поддержку select
системный вызов. Когда результаты доступны от API-функций Открытия Службы DNS, эта функция используется для определения. Больше информации об использовании select
цикл с Открытием Службы DNS доступен в Регистрации и Завершении Службы, Просмотре для Сетевых служб и Разрешении Текущего адреса Службы.