Along with the other good suggestions in this thread, have you tried rebuilding the TCP/IP stack yet? I've found that winsock errors are usually the result of the TCP/IP stack being corrupt. Here's the procedure:
1. Open a command prompt by clicking Start and then type cmd in the Search programs and files box.
2. Under Programs, right-click the CMD.exe icon, and then click Run as administrator.
3. When the User Account Control box appears, click Yes.
4. At the command prompt, enter the following command, and then press Enter:
netsh int ip reset C:\resetlog.txt
As this command re-writes some registry entries, it's always best to reboot once you've closed the command prompt.
.