1) htonl() and htons() are declared in winsock.h on Windows and require ws2_32 to be linked in.
2) mingw does not have asprintf, so I changed the Qt GUI to use QString's sprintf() member function which should behave identically.
3) Windows Vista and 7 try to run any program with "patch" in the name with administrative privileges for backwards compatibility with legacy stuff, so I added a build step to the Qt app to embed a manifest. I also need to do the same thing with the cli app...