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