| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
n342
10年前发布

C# 实现一个简单的 HTTP 服务器

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