Search code examples
c#ubuntumonocentoshttplistener

Mono HTTPListener not accessible remotely in opensuse and CentOS


I am testing the linux releases with vmware.

I run a simple sample from here

    // This example requires the System and System.Net namespaces.
public static void SimpleListenerExample(string[] prefixes)
{
    // Create a listener.
    HttpListener listener = new HttpListener();
    // Add the prefixes.
    foreach (string s in prefixes)
    {
        listener.Prefixes.Add(s);
    }
    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();
}

and the prefixes is http://192.168.10.132:8080/.

It works fine in ubuntu either locally in guest or remotely in host.

It's also accessible locally in guest in opensue and CentOS, but it could not be open in host, after a long time waiting, no response, and then time out.


Solution

  • I figured it out, it's because the firewall is by default enabled. I need to allow the port I use.