Casey Dahlin | 3dfdc95 | 2016-07-19 13:54:29 -0700 | [diff] [blame^] | 1 | This directory contains support files for running mDNS on Microsoft Windows |
| 2 | and Windows CE/PocketPC. Building this code requires the Windows SDK 2003 |
| 3 | or later. The CodeWarrior builds require CodeWarrior 8 or later and if using |
| 4 | CodeWarrior 8, the newer Windows headers from the Mac CodeWarrior 9 need to |
| 5 | be used. |
| 6 | |
| 7 | mDNSWin32.c/.h |
| 8 | |
| 9 | Platform Support files that go below mDNS Core. These work on both Windows |
| 10 | and Windows CE/PocketPC. |
| 11 | |
| 12 | DNSSD.c/.h |
| 13 | |
| 14 | High-level implementation of the DNS-SD API. This supports both "direct" |
| 15 | (compiled-in mDNSCore) and "client" (IPC to service) usage. Conditionals |
| 16 | can exclude either "direct" or "client" to reduce code size. |
| 17 | |
| 18 | DNSSDDirect.c/.h |
| 19 | |
| 20 | Portable implementation of the DNS-SD API. This interacts with mDNSCore |
| 21 | to perform all the real work of the DNS-SD API. This code does not rely |
| 22 | on any platform-specifics so it should run on any platform with an mDNS |
| 23 | platform plugin available. Software that cannot or does not want to use |
| 24 | the IPC mechanism (e.g. Windows CE, VxWorks, etc.) can use this code |
| 25 | directly without any of the IPC pieces. |
| 26 | |
| 27 | RMxClient.c/.h |
| 28 | |
| 29 | Client-side implementation of the DNS-SD IPC API. This handles sending |
| 30 | and receiving messages from the service to perform DNS-SD operations |
| 31 | and get DNS-SD responses. |
| 32 | |
| 33 | RMxCommon.c/.h |
| 34 | |
| 35 | Common code between the RMxClient and RMxServer. This handles establishing |
| 36 | and accepting connections, the underying message sending and receiving, |
| 37 | portable data packing and unpacking, and shared utility routines. |
| 38 | |
| 39 | RMxServer.c/.h |
| 40 | |
| 41 | Server-side implementation of the DNS-SD IPC API. This listens for |
| 42 | and accepts connections from IPC clients, starts server sessions, and |
| 43 | acts as a mediator between the "direct" (compiled-in mDNSCore) code |
| 44 | and the IPC client. |
| 45 | |
| 46 | DNSServices is an obsolete higher-level API for using mDNS. New code should |
| 47 | use the DNS-SD APIs. |
| 48 | |
| 49 | DNSServiceDiscovery is an obsolete emulation layer that sits on top of |
| 50 | DNSServices and provides the Mac OS X DNS Service Discovery API's on any |
| 51 | platform. New code should use the DNS-SD APIs. |
| 52 | |
| 53 | Tool.c is an example client that uses the services of mDNS Core. |
| 54 | |
| 55 | ToolWin32.mcp is a CodeWarrior project (CodeWarrior for Windows version 8). |
| 56 | ToolWin32.vcproj is a Visual Studio .NET 7 project. These projects build |
| 57 | Tool.c to make DNSServiceTest.exe, a small Windows command-line tool to do all |
| 58 | the standard DNS-SD stuff on Windows. It has the following features: |
| 59 | |
| 60 | - Browse for browsing and/or registration domains. |
| 61 | - Browse for services. |
| 62 | - Lookup Service Instances. |
| 63 | - Register domains for browsing and/or registration. |
| 64 | - Register services. |
| 65 | |
| 66 | For example, if you have a Windows machine running a Web server, |
| 67 | then you can make it advertise that it is offering HTTP on port 80 |
| 68 | with the following command: |
| 69 | |
| 70 | DNSServiceTest -rs "Windows Web Server" "_http._tcp." "local." 80 "" |
| 71 | |
| 72 | To search for AFP servers, use this: |
| 73 | |
| 74 | DNSServiceTest -bs "_afpovertcp._tcp." "local." |
| 75 | |
| 76 | You can also do multiple things at once (e.g. register a service and |
| 77 | browse for it so one instance of the app can be used for testing). |
| 78 | Multiple instances can also be run on the same machine to discover each |
| 79 | other. There is a -help command to show all the commands, their |
| 80 | parameters, and some examples of using it. |
| 81 | |
| 82 | DNSServiceBrowser contains the source code for a graphical browser application |
| 83 | for Windows CE/PocketPC. The Windows CE/PocketPC version requires Microsoft |
| 84 | eMbedded C++ 4.0 with SP2 installed and the PocketPC 2003 SDK. |
| 85 | |