C#实现HTTP服务端客户端通信传文件

关于HTTP协议

几种传输协议大家都应该了解,比如FTP文件传输,Socket传输,HTTP相对这两种比较简单,根据需求来选择传输协议,本人实习所作的项目,用http刚刚好,简单方便又可以完成所有的需求,我需要不仅传输文件还要传输指令,如果我选择FTP传输文件,会把其它内容包装成文件,反而很繁琐,Socket又比较复杂。综上HTTP是简单实用的协议。
关于HTTP的详解,比如报文结构,状态码等请移步其它网站,比如下方的教程,我认为可以满足基本需求
https://www.runoob.com/http/http-messages.html

HTTP服务端

服务端的主要负责响应客户端发来的请求,服务器收到客户端发来的请求后会返回一个HTTP的响应消息

以下是HTTP的响应报文部分,关于响应的详解,请看博客一开始给出的连接
HTTP的响应消息主要分四部分:状态行,消息报头,空行,响应正文
第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行为状态行,(HTTP/1.1)是HTTP版本为1.1版本,状态码为200,状态消息(ok)
第二部分:消息报头,用来说明客户端要使用的一些附加信息
第二行和第三行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本信息

服务端用到的基础类是Httplistener,写文件的时候会用到StreamWriter
服务端相应的代码结构大概分为以下几个部分

  1. 创建一个HTTP侦听器对象并初始化HttpListener listener = new HttpListener();
  2. 添加需要监听的URI 前缀:使用Prefixes属性来访问集合
  3. 开始侦听来自客户端的请求 : listener.Start();
  4. 处理客户端的Http请求,34循环处理以提供多客户的多请求
  5. 关闭HTTP侦听器

服务端响应客户端并发送helloword的完整示例程序如下:

class Program
    {
   
        static void Main(string[] args)
        {
   
            new DebugSever().DebugListener("http://127.0.0.1:8080/");//这里以

你可能感兴趣的:(C#,http,C#,服务端,客户端,文件传输)