You can also get the ports on FTP, using cvsup to keep the ports tree up to date. That's what I do with my FreeBSD 5.0 with no problems. It's documented in the FreeBSD Handbook.
You're making me highly confused with your second paragraph. You mentioned Redhat, and then debian and suddenly your scene is moved to Windows. I scratch my head and don't understand what you would like to do.
But if you would like a good Windows compiler, I would suggest
www.mingw.org or get the Dev-C++ bundle from
www.bloodshed.net