- using System;
- using System.IO;
- using System.Net;
- using System.Text;
- using System.Threading;
- class MainClass {
- private static int maxRequestHandlers = 5;
- private static int requestHandlerID = 0;
- private static HttpListener listener;
- private static void RequestHandler(IAsyncResult result) {
- try {
- HttpListenerContext context = listener.EndGetContext(result);
- StreamWriter sw = new StreamWriter(context.Response.OutputStream, Encoding.UTF8);
- sw.WriteLine("<html><head><title>C# </title>");
- sw.WriteLine("</head><body>" + result.AsyncState);
- sw.WriteLine("</body></html>");
- sw.Flush();
- context.Response.ContentType = "text/html";
- context.Response.ContentEncoding = Encoding.UTF8;
- context.Response.Close();
- } catch (ObjectDisposedException) {
- Console.WriteLine(result.AsyncState);
- } finally {
- if (listener.IsListening) {
- listener.BeginGetContext(RequestHandler,
- "RequestHandler_" + Interlocked.Increment(ref requestHandlerID));
- }
- }
- }
- public static void Main(string[] args) {
- using (listener = new HttpListener()) {
- listener.Prefixes.Add("http://localhost:8080/");
- listener.Start();
- for (int count = 0; count < maxRequestHandlers; count++) {
- listener.BeginGetContext(RequestHandler, "RequestHandler_" +
- Interlocked.Increment(ref requestHandlerID));
- }
- Console.WriteLine("Press Enter to stop the HTTP Server");
- Console.ReadLine();
- listener.Stop();
- listener.Abort();
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2303201511973.html
来源: http://www.codesnippet.cn/detail/2303201511973.html