• c# HttpListener 使用


    与 IIS 上发布网站相比,使用 HttpListener 编程的程序更加轻量化,易于发布和更新。配合 Thread 或 Task 类也可满足一定的并发。

    https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httplistener?view=netframework-4.7.2

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Threading;
    using System.IO;
    //https://docs.microsoft.com/zh-cn/dotnet/api/system.net.httplistener?view=netframework-4.7.2
    
    namespace WebServer
    {
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    using (HttpListener listener = new HttpListener())
                    {
                        listener.Prefixes.Add("http://localhost:8888/");
                        listener.Start();
                        Console.WriteLine("开始监听");
                        while (true)
                        {
                            try
                            {
                                HttpListenerContext context = listener.GetContext();//阻塞
                                HttpListenerRequest request = context.Request;
                                string postData = new StreamReader(request.InputStream).ReadToEnd();
                                Console.WriteLine("收到请求:" + postData);
                                HttpListenerResponse response = context.Response;//响应
                                string responseBody = "响应";
                                response.ContentLength64 = System.Text.Encoding.UTF8.GetByteCount(responseBody);
                                response.ContentType = "text/html; Charset=UTF-8";
                                //输出响应内容
                                Stream output = response.OutputStream;
                                using (StreamWriter sw = new StreamWriter(output))
                                {
                                    sw.Write(responseBody);
                                }
                                Console.WriteLine("响应结束");
                            }
                            catch (Exception err)
                            {
                                Console.WriteLine(err.Message);
                            }
                        }
                    }
                }
                catch (Exception err)
                {
                    Console.WriteLine("程序异常,请重新打开程序:" + err.Message);
                }
            }
        }
    }
  • 相关阅读:
    平易近人、兼容并蓄——Spark SQL 1.3.0概览
    System.getProperty
    Apache Commons CLI 简介
    The declared package does not match the expected package
    Maven常用命令
    使用SBT构建Scala应用(转自git)
    Area Under roc Curve(AUC)
    用特征来实现混入(mix-in)式的多重继承
    暗时间
    SVN如何commit(提交)项目代码
  • 原文地址:https://www.cnblogs.com/aitong/p/11642131.html
Copyright © 2020-2023  润新知