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
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();
Bookmarks