加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 17:56:04 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 using System;using System.IO;using System.Net;using System.Text;using System.Threading; class MainClass { private static int maxRequestHandl

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读