Используя открытие службы 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 доступен в Регистрации и Завершении Службы, Просмотре для Сетевых служб и Разрешении Текущего адреса Службы.