I've seen many submissions of portscanners that use one winsock, but hardly any that use 50+. This code uses anything upto 200 simultaneous sockets / controls, to make it fast and accureate.. and it's fully commented.
Side Effects
If you get stack errors or similar, try lowering the maxsockets constant.