socklen_t on MSVC2010, consistent behaviour on Win32 vs. others

one fix: include corrected so MSVC2010 knows about socklen_t now.

one tweak: always have the socks[] initialized to a 'sane' value (-1 / INVALID_SOCKET) when an error occurs.
Win32 code already did this most of the time (not all cases).