I like your idea of splitting everything up, for example, I'd find the discover program by itself very useful, as my router's DNS at home doesn't let you resolve hostnames of computers inside the network, so I have to log into the router every time.
2009/12/26 anonymous <aim0s...@lavabit.com> > Now I think: should I implement retransmission in simple port scanner? I would say no, to keep everything simple, and the user can always write a script or whatever to take the program's output and retry for dropped/lost packets.