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