winform版简易http服务器

传人url运行(url以/结尾,例如:http://localhost:8080/web/   监听这个url// 在浏览器 中输入 http://localhost:8080/web/?name=test或 http://localhost/web/?name=test,在浏览器就会出现Hello test 和一些Request头部相关信息.

public  void Run(string url)
       {
           using (HttpListener listerner = new HttpListener())
           {
               listerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问
            //   listerner.Prefixes.Add("http://localhost:8080/web/");
               listerner.Prefixes.Add(url);
               // listerner.Prefixes.Add("http://localhost/web/");
               listerner.Start();
               Console.WriteLine("WebServer Start Successed.......");
               while (RunOrStop)
               {
                   //等待请求连接
                   //没有请求则GetContext处于阻塞状态
                   HttpListenerContext ctx = listerner.GetContext();
                   ctx.Response.StatusCode = 200;//设置返回给客服端http状态代码
                   string name = ctx.Request.QueryString["name"];

                   if (name != null)
                   {
                       Console.WriteLine(name);
                   }

                   //使用Writer输出http响应代码
                   using (StreamWriter writer = new StreamWriter(ctx.Response.OutputStream))
                   {
                       Console.WriteLine("hello");
                       writer.WriteLine("<html><head><title>The WebServer Test</title></head><body>");
                       writer.WriteLine("<div style=\"height:20px;color:blue;text-align:center;\"><p> hello {0}</p></div>", name);
                       writer.WriteLine("<ul>");

                       foreach (string header in ctx.Request.Headers.Keys)
                       {
                           writer.WriteLine("<li><b>{0}:</b>{1}</li>", header, ctx.Request.Headers[header]);

                       }
                       writer.WriteLine("</ul>");
                       writer.WriteLine("</body></html>");

                       writer.Close();
                       ctx.Response.Close();
                   }

               }
               // listerner.Stop();
           }
       }
时间: 2024-10-04 08:38:49

winform版简易http服务器的相关文章

HFS汉化版|简易HTTP服务器

专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,只要解压缩后执行 hfs.exe,于「Virtual File System(虚拟档案系统)」窗格下按鼠标右键,即可新增/移除虚拟档案资料夹,或者,直接将欲加入的档案拖曳至此窗口,便可架设完成个人 HTTP 虚拟档案服务器. 我一般用于往虚拟机中传输文件,(⊙o⊙)… 汉化的,英文版可以去官网下载! 官网: ht

基于C# Winform的简易聊天程序[第一篇-两端通信]

程序简介 本聊天程序支持局域网内部客户端与服务端之间的互相通信. 原理 启动服务端后,服务端通过持续监听客户端发来的请求,一旦监听到客户端传来的信息后,两端便可以互发信息了.服务端需要绑定一个IP,用于客户端在网络中寻找并建立连接.信息发送原理:将手动输入字符串信息转换成机器可以识别的字节数组,然后调用套接字的Send()方法将字节数组发送出去.信息接收原理:调用套接字的Receive()方法,获取对端传来的字节数组,然后将其转换成人可以读懂的字符串信息. 界面设计 - 服务端 IP文本框 na

C# Winform版批量压缩图片程序

需求 上周,领导给我分配了一个需求:服务器上的图片文件非常大,每天要用掉两个G的大小的空间,要做一个自动压缩图片的工具处理这些大图片.领导的思路是这样的: 1)打开一个图片,看它的属性里面象素是多少,大于1000就按比例缩小到1000. 2)再看它的品质属性,比如我们标准是50,如果大于这个值再修改品质. 压缩后的文件大小不能超过200k. 思路 因为服务器上的图片文件名是加密处理过的,和图片文件一起存在的还有其它附件,没有后缀名,用肉眼根本看不出来是否是图片文件.所以刚开始的时候,我的思路是先

C#版简易RSS阅读器

C#版简易RSS阅读器.由VB版修改完成,感谢aowind的技术支持! 源代码: using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Xml; using System.IO; using System.Threading; namespace Yu

理解tomcat之搭建简易http服务器

做过java web的同学都对tomcat非常熟悉.我们在使用tomcat带来的便利的同时,是否想过tomcat是如何工作的呢?tomcat本质是一个http服务器,本篇文章将搭建一个简单的http服务器. 1 Catalina模型 首先我们先了解一下tomcat的大致工作原理.tomcat的核心是servlet容器,我们称它为Catalina(为什么叫这个名字?我也不知道 ̄へ ̄).模型图如1.1 图1.1 Connector是用来"连接"容器里边的请求的.它的工作是为接收到每一个 H

Socket 初识 用Socket建立一个简易Web服务器

摘自<Asp.Net 本质论>作者:郝冠军 //在.Net中.system.Net命名空间提供了网络编程的大多数数据据类型以及常用操作,其中常用的类型如下:/*IPAddress 类表示一个IP地址* IPEndPoint类用来表示一个IP地址和一个端口号的组合,成为网络的端点.* System.Net.Sockets命名空间中提供了基于Socked编程的数据类型.* Socket类封装了Socked的操作.* 常见的操作:* Listen:设置基于连接通信的Socket进入监听状态,并设置等

简易JAVA_WEB服务器处理POST请求得到内容

package com.zhao.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.ServerSocket; import java.net.Socket; import java.net.URLDecoder; /** * * @author

C#Winform版之CheckBox、ChecklistBox控件遍历代码

CheckBox,是各种开发语言环境和网页中常用的控件.下面,本文给大家讲解的是C#Winform版的CheckBox.控件遍历.全选.反选实例代码.①直接引用如果窗体form中存在CheckBox控件,直接引用的方法为:控件名称.属性=属性值例子:checkBox1.Checked = true;②遍历引用遍历引用有两种情况,其一为checkBox控件不包含在任何容器内:其二是checkBox控件包含于某些容器内.A:checkBox不包含在任何容器内的遍历方法 foreach(Control

阻塞式简易http服务器

说明         使用java.net包的ServerSocket也是阻塞的,所以下面的实例把ServerSocketChannel换成ServerSocket效果一样. 后台代码 1 package study.socket.tcp.block.httpserver; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.net.InetSocketAddress; 6 import