添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

使用C#实现一个简单的http服务器。

使用 C# 实现一个简单的 HTTP 服务器的代码示例。请注意,这只是一个基本的实现,可能需要进行修改以适应您的具体需求,例如添加身份验证、HTTPS 支持等。

using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace SimpleHttpServer
    class Program
        static void Main(string[] args)
            int port = 8080; // 设置端口号
            TcpListener listener = new TcpListener(IPAddress.Any, port);
            listener.Start();
            Console.WriteLine($"HTTP 服务已启动,监听端口:{port}");
            while (true)
                using (TcpClient client = listener.AcceptTcpClient())
                    HandleClient(client);
        static void HandleClient(TcpClient client)
            using (NetworkStream stream = client.GetStream())
                byte[] buffer = new byte[1024];
                int numBytesRead = stream.Read(buffer, 0, buffer.Length);
                string request = Encoding.ASCII.GetString(buffer, 0, numBytesRead);
                Console.WriteLine($"接收到请求:\n{request}");
                string[] tokens = request.Split(' ');
                string httpMethod = tokens[0];
                string httpUrl = tokens[1];
                if (httpMethod == "GET")
                    RespondWithFile(stream, httpUrl);
                    RespondWithError(stream, HttpStatusCode.NotImplemented, "不支持此 HTTP 方法");
        static void RespondWithFile(NetworkStream stream, string httpUrl)
            string filePath = "." + httpUrl;
            if (!File.Exists(filePath))
                RespondWithError(stream, HttpStatusCode.NotFound, "文件不存在");
                return;
            string fileContent = File.ReadAllText(filePath);
            byte[] responseBytes = Encoding.UTF8.GetBytes($"HTTP/1.1 200 OK\n\n{fileContent}");
            stream.Write(responseBytes, 0, responseBytes.Length);
        static void RespondWithError(NetworkStream stream, HttpStatusCode statusCode, string errorMessage)