117.info
人生若只如初见

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.117.info/ask/fee64AzsPAwFQBw.html

推荐文章

  • c++中set容器关闭的方法是什么

    在C++中,通过调用set容器的clear()方法来清空set容器中的所有元素。示例代码如下:
    #include #include int main() { std::set mySet = {1, 2, 3, 4, 5}; /...

  • c++中set容器的功能有哪些

    在C++中,set容器是一个有序的容器,它的功能包括: 存储元素:set容器可以存储唯一的元素,即相同元素只会在容器中出现一次。 插入元素:可以使用insert()函数向...

  • c++中set容器排序的方法是什么

    在C++中,set容器是自动排序的容器,其元素默认按照从小到大的顺序进行排序。如果需要自定义排序方法,可以使用set容器的构造函数来指定排序方法,例如:
    #...

  • c++列表怎么删除元素

    在C++中,删除列表中的元素可以使用STL中的erase()函数。erase()函数接受一个迭代器作为参数,用于指定要删除的元素的位置。以下是一个简单的示例:
    #inclu...

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

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

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

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

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

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

  • PHP开发者为何选择hprose

    PHP开发者选择hprose的原因主要包括其高性能、跨语言支持、简单易用以及丰富的功能特性。hprose高性能的远程对象服务引擎,不仅支持PHP,还支持多种编程语言,如...