HawkNL sample applications

async: Demonstrates asynchronous calls nlGetNameFromAddrAsync and nlGetAddrFromNameAsync
by resolving five addresses or name at once, and displaying the results every second.

broadcast: Demonstrates broadcast packets on a LAN. You can specify the network type
on the command line. Supports NL_IP (the default), NL_IPX, or NL_LOOP_BACK.
Example: broadcast NL_LOOPBACK

buffer: Demonstrates how to use swap endian API, and the buffer read/write macros.

clientserver: Shows client/server action using two threads. Uses nlPollGroup to check for
incoming messages from the 10 client sockets. You can specify the network type on the
command line. Supports NL_IP (the default), NL_IPX, or NL_LOOP_BACK.
Example: clientserver NL_LOOPBACK

eqtest.c: Shows how to query the EverQuest status server to get the current banner
set in the chat server.

getfile: Hey, something useful! Downloads a file from a web server from the command line.
Example: getfile www.hawksoft.com /links.shtml c:\links.html
Note: getfile now sends the HTTP header to stdout.

max: Opens UDP ports, then connected TCP ports, until the system fails to open up more.
On Windows NT 4.0 server with 256 MB of RAM, it can open up 64511 UDP sockets and 7926
connected TCP sockets.

multicast: Demonstrates client and server multicast services.
Example: multicast -s will run a server with default options, and just multicast will run
a client with default options. For the full list of options, run multicast -h .

overrun.c: Simply tests the buffer over-run prevention code in nlStringToAddr and
nlGetAddrFromName*

test.c: The original test app; a VERY simple chat app.

threadpool.c: Shows how to use threads, mutexes, and conditions to create a server thread
pool to handle a large number in incoming requests.

timer.c: Tests the resolution of the NLTime function.
