Errrr, I don't know how smart a move that is actually (I didn't notice it when I looked at the code lol). Take a look at this from MSDN:
networkinit is hardwired into the constructor <naughty me> so its not entirely necessary to call. Networkshutdown on the otherhand is...<checks> doesnt seem to be in the destructor, which is probablly a smart move now that i think about it.
That's why I made it a separate static function :cool:
An application must call one WSACleanup call for every successful WSAStartup call to allow third-party DLLs to make use of a WS2_32.DLL on behalf of an application. This means, for example, that if an application calls WSAStartup three times, it must call WSACleanup three times.