legongju.com
我们一直在努力
2025-01-06 20:37 | 星期一

c#如何实现一个简单的webserver

在C#中,你可以使用HttpListener类来实现一个简单的Web服务器。以下是一个基本的示例:

  1. 首先,确保你的项目中引用了System.Net.Http命名空间。
  2. 然后,创建一个新的HttpListener实例,并设置监听的端口。
  3. HttpListener添加请求处理程序。
  4. 开始监听,并处理收到的请求。
  5. 最后,停止监听。

以下是一个简单的Web服务器实现:

using System;
using System.Net;
using System.Net.Http;
using System.Threading;

namespace SimpleWebServer
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置监听的端口
            int port = 8080;
            Uri uri = new Uri($"http://localhost:{port}/");

            // 创建一个新的HttpListener实例
            HttpListener httpListener = new HttpListener();

            // 将URI添加到监听器
            httpListener.IgnoreSecurityMessages = true;
            httpListener.Request及时处理Callback = OnRequestReceived;
            httpListener.AddUri(uri);

            // 开始监听
            Console.WriteLine($"Starting server on {uri}");
            httpListener.Start();

            // 等待请求
            Console.WriteLine("Press 'Enter' to stop the server...");
            Console.ReadLine();

            // 停止监听
            httpListener.Stop();
            Console.WriteLine("Server stopped.");
        }

        static void OnRequestReceived(HttpListenerContext context)
        {
            // 获取请求的URI
            string requestUri = context.Request.Url.LocalPath;

            // 创建一个新的响应对象
            HttpResponse response = context.Response;

            // 设置响应的状态码和内容类型
            response.StatusCode = HttpStatusCode.OK;
            response.ContentType = "text/html";

            // 写入响应内容
            using (var writer = new System.IO.StreamWriter(response.OutputStream))
            {
                writer.WriteLine("Simple Web Server");
                writer.WriteLine("

Hello, World!

"); writer.WriteLine(""); } // 关闭响应 response.Close(); } } }

这个简单的Web服务器将监听8080端口,并在根目录下提供一个HTML页面。你可以根据需要修改OnRequestReceived方法来处理不同的请求和路径。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/85856.html

相关推荐

  • c#怎么创建线程池

    c#怎么创建线程池

    在C#中,可以使用System.Threading.ThreadPool类来创建和管理线程池。以下是一个简单的示例,展示了如何创建一个线程池并向其添加工作项:
    using System;

  • c# npoi怎么创建excel

    c# npoi怎么创建excel

    NPOI 是一个用于操作 Microsoft Office 文件格式的 .NET 库,包括 Excel。要使用 NPOI 创建 Excel 文件,请按照以下步骤操作: 首先,确保已将 NPOI 添加到项目中...

  • c#怎么加密字符串

    c#怎么加密字符串

    在C#中,可以使用内置的加密类库来加密字符串。下面是一个使用AES加密算法的示例:
    首先,需要引入System.Security.Cryptography命名空间。
    using Sys...

  • c#怎么读excel每行每列

    c#怎么读excel每行每列

    在C#中,可以使用第三方库如EPPlus、NPOI或Microsoft.Office.Interop.Excel来操作Excel文件。这里我将给出一个使用EPPlus库的示例,展示如何遍历Excel文件的每行...

  • 如何解决c# treenode节点显示问题

    如何解决c# treenode节点显示问题

    在C#中,如果你遇到了TreeNode节点的显示问题,可能的原因有很多。以下是一些常见的解决方案: 检查图像源:确保你为TreeNode设置了正确的图像源。如果图像路径不...

  • c#中使用treenode会遇到哪些难题

    c#中使用treenode会遇到哪些难题

    在C#中使用TreeNode时,可能会遇到以下一些难题: 循环引用:当在树形结构中添加节点时,如果不小心创建了循环引用,可能会导致内存泄漏。例如,如果一个节点引用...

  • c# treenode有哪些常见应用场景

    c# treenode有哪些常见应用场景

    在C#中,TreeNode是一个常见的类,它通常用于表示树形结构中的一个节点。以下是TreeNode的一些常见应用场景: 树形数据结构的表示:TreeNode类通常用于构建树形数...

  • 如何优化c#中treenode的性能

    如何优化c#中treenode的性能

    在C#中,TreeNode类通常用于表示树形结构中的一个节点。如果你想要优化TreeNode的性能,可以考虑以下几个方面: 减少对象创建: 避免在循环中频繁地创建和销毁Tr...