Created
July 21, 2014 07:20
-
-
Save mpfund/fb8cd6f6e85629ec077d to your computer and use it in GitHub Desktop.
A simple http listener / server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Net; | |
| using System.Threading; | |
| namespace SimpleHttpServer | |
| { | |
| public class SimpleHttpServer | |
| { | |
| public static void Start() | |
| { | |
| var t = new Thread(() => SimpleListenerExample(new string[] { "http://localhost:2000/" })); | |
| t.IsBackground = true; | |
| t.Start(); | |
| } | |
| // This example requires the System and System.Net namespaces. | |
| public static void SimpleListenerExample(string[] prefixes) | |
| { | |
| if (!HttpListener.IsSupported) | |
| { | |
| Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class."); | |
| return; | |
| } | |
| // URI prefixes are required, | |
| // for example "http://contoso.com:8080/index/". | |
| if (prefixes == null || prefixes.Length == 0) | |
| throw new ArgumentException("prefixes"); | |
| // Create a listener. | |
| var listener = new HttpListener(); | |
| // Add the prefixes. | |
| foreach (string s in prefixes) | |
| { | |
| listener.Prefixes.Add(s); | |
| } | |
| listener.Start(); | |
| Console.WriteLine("Listening..."); | |
| while (true) | |
| { | |
| // 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 = @"hello"; | |
| 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(); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment