C# 实现一个简单的 HTTP 服务器
2018-07-20 来源:open-open
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();
}
}
}
标签: isp
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:php在指定字符串中查找子字符串
下一篇:Java代码生成图片验证码实现
最新资讯
热门推荐