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(); } }
}
</pre>
本文由用戶 n342 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!