I am attempting to create a socket listener in a Windows application using a System.Net.Sockets.Socket but I could not bind to port 80 on my Windows 7 machine, I could bind to any other port without issue but attempting to bind to 80 always resulted in:

an attempt was made to access a socket in a way forbidden by its access permissions

I discovered that IIS running locally locked up port 80 and that I had to move IIS to another port - you can read how to d os by going to http://www.ultimateproxylist.com/ChangingIIS.aspx

The problem I still have - even after moving IIS off of Port 80 - is that no listener is actually working. I even grabbed the following code sample directly off the MSDN site and even IT does not work! I am on a Windows 7 machine - any ideas?!?

if (!HttpListener.IsSupported)
{
Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
return;
}

// Create a listener.
HttpListener listener = new HttpListener();

// Add the prefixes.
listener.Prefixes.Add("http://*:80/");
listener.Start();
Console.WriteLine("Listening...");
// Note: The GetContext method blocks while waiting for a request.
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// Obtain a response object.
HttpListenerResponse response = context.Response;
// Construct a response.
string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Get a response stream and write the response to it.
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
// You must close the output stream.
output.Close();
listener.Stop();