全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#如何实现一个简单的Web服务器 C# HttpListener类的使用

答案:使用C#的HttpListener类可创建轻量级Web服务器。首先配置监听前缀并注册URL权限,然后启动监听并处理请求,返回HTML响应,最后通过netsh命令管理端口访问权限。

在C#中实现一个简单的Web服务器,可以使用.NET Framework自带的 HttpListener 类。它不需要依赖IIS,能够监听指定的HTTP请求并返回响应内容,非常适合开发轻量级本地服务或调试用途。

1. 启用和配置 HttpListener

要使用 HttpListener,首先需要创建实例,添加监听的URL前缀,并启动监听器。

注意:需要管理员权限运行程序,且URL前缀需通过 netsh 命令注册(Windows系统)。

示例代码:

using System;
using System.Net;

class SimpleWebServer { private HttpListener _listener;

public void Start(string prefix)
{
    if (!HttpListener.IsSupported)
    {
        Console.WriteLine("当前系统不支持 HttpListener");
        return;
    }

    _listener = new HttpListener();
    _listener.Prefixes.Add(prefix); // 例如:https://www./link/cbb686245ece57c9827c4bc0d0654a8e/
    _listener.Start();

    Console.WriteLine($"服务器已启动,监听地址:{prefix}");

    Listen();
}

private async void Listen()
{
    while (_listener.IsListening)
    {
        var context = await _listener.GetContextAsync();
        HandleRequest(context);
    }
}

}

2. 处理HTTP请求

每个请求由 HttpListenerContext 表示,包含请求(HttpRequest)和响应(HttpResponse)对象。

你可以读取请求方法、路径、查询参数等,并写入响应内容。

示例处理逻辑:

private void HandleRequest(HttpListenerContext context)
{
    var request = context.Request;
    var response = context.Response;
string responseString = $@"
    
    
        

Hello from C# Web Server!

请求路径:{request.Url.PathAndQuery}

请求方法:{request.HttpMethod}

客户端IP:{request.RemoteEndPoint}

"; byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString); response.ContentLength64 = buffer.Length; response.ContentType = "text/html; charset=utf-8"; response.OutputStream.Write(buffer, 0, buffer.Length); response.Close();

}

3. 注册URL权限(Windows 必须)

首次使用指定端口时,系统可能拒绝访问。你需要以管理员身份运行命令提示符,执行以下命令:

netsh http add urlacl url=https://www./link/cbb686245ece57c9827c4bc0d0654a8e/ user=everyone

完成后,你的程序才能绑定到该地址。如果想监听所有IP,可用:

netsh http add urlacl url=http://*:8080/ user=everyone

不再使用时可删除注册:

netsh http delete urlacl url=https://www./link/cbb686245ece57c9827c4bc0d0654a8e/

4. 完整运行示例

将所有部分组合起来:

static void Main(string[] args)
{
    var server = new SimpleWebServer();
    server.Start("https://www./link/cbb686245ece57c9827c4bc0d0654a8e/");
Console.WriteLine("按任意键停止服务器...");
Console.ReadKey();

if (server._listener?.IsListening == true)
    server._listener.Stop();

}

运行后打开浏览器访问 https://www./link/cbb686245ece57c9827c4bc0d0654a8e,即可看到返回的HTML页面。

基本上就这些。你可以在 HandleRequest 中加入路由判断、静态文件返回、POST数据解析等功能,逐步扩展成更实用的小型服务端应用。


# c#  # html  # windows  # 浏览器  # 端口  # iis  # ai  # 路由  # win  # stream  # windows系统  # 对象  # http 


相关文章: 建站之星24小时客服电话如何获取?  如何高效完成独享虚拟主机建站?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何快速选择适合个人网站的云服务器配置?  建站之星如何优化SEO以实现高效排名?  山东网站制作公司有哪些,山东大源集团官网?  c# await 一个已经完成的Task会发生什么  h5在线制作网站电脑版下载,h5网页制作软件?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站主机是什么?如何选择适合的建站主机?  如何通过PHP快速构建高效问答网站功能?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  宝塔新建站点为何无法访问?如何排查?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  如何通过虚拟主机空间快速建站?  网站网页制作专业公司,怎样制作自己的网页?  建站之星如何助力网站排名飙升?揭秘高效技巧  家庭服务器如何搭建个人网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何在新浪SAE免费搭建个人博客?  如何制作网站标识牌,动态网站如何制作(教程)?  建站ABC备案流程中有哪些关键注意事项?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  如何用PHP快速搭建CMS系统?  建站之星安装需要哪些步骤及注意事项?  七夕网站制作视频,七夕大促活动怎么报名?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站之星后台管理:高效配置与模板优化提升用户体验  如何快速生成专业多端适配建站电话?  建站之星CMS五站合一模板配置与SEO优化指南  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何通过西部数码建站助手快速创建专业网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何获取PHP WAP自助建站系统源码?  Python如何创建带属性的XML节点  建站之星如何实现五合一智能建站与营销推广?  如何通过可视化优化提升建站效果?  如何高效生成建站之星成品网站源码?  建站之星如何快速生成多端适配网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  香港服务器WordPress建站指南:SEO优化与高效部署策略  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。