FTP、http 、tcp

HTTP VS FTP

HTTP :HyperText Transfer Protocol 超文本传输协议,是基于TCP协议
FTP: File Transfer Protocol 文件传输协议, 基于TCP协议, 基于UDP协议的FTP 叫做 TFTP

HTTP 协议 通过一个SOCKET连接传输依次会话数据。
FTP 协议中将控制命令、数据分开传输的方法,为了提高效率,FTP协议要创建2个SOCKET TCP连接,占用2个TCP,
一个连接用于传输控制命令
一个连接用于传输数据

FTP服务器的进程由两大部分组成:
一个主进程,负责接收新的请求。
另外有若干个从属进程,负责处理单个请求。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还有一个工具phpstudy 搭建ftp比较方便,同时这个工具也方便搭建php服务
IIS ftp 搭建
添加链接描述

net ftp 上传、下载

》》上传

public void UploadFile()
{
 FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://xxxx");
            ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
            ftpWebRequest.Credentials = new NetworkCredential("用户名","密码");
            using (FileStream fileStream = File.Open("需要上传文件路径",FileMode.Open,FileAccess.Read))
            {
                using (Stream  requestStream = ftpWebRequest.GetRequestStream())
                {
                    fileStream.CopyTo(requestStream);
                    using (FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse())
                    {
                        Console.WriteLine("处理状态码:"+ ftpWebResponse.StatusCode+"状态信息:"+ftpWebResponse.StatusCode);
                    }
                }
            }
            }

》》》下载文件

 public  void DownLoadFile()
        {
            FtpWebRequest ftpWebRequest = (FtpWebRequest)FtpWebRequest.Create("ftp://xxxx/dd文件");
            ftpWebRequest.Method = WebRequestMethods.Ftp.DownloadFile;
            ftpWebRequest.Credentials = new NetworkCredential("用户名", "密码");
            //创建要存储的文件
            FileStream fileStream = File.Open("文件要存储的路径含文件名", FileMode.Open, FileAccess.Write);
            FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
            Stream responseStream = ftpWebResponse.GetResponseStream();
            byte[] buffer = new byte[1024];
            int readCount = responseStream.Read(buffer, 0, buffer.Length);
            while (readCount>0)
            {
                fileStream.Write(buffer, 0, readCount);
                readCount= responseStream.Read(buffer, readCount, buffer.Length);
            }
                
            
        }

》》》获取文件列表
在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 18:58:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 18:58:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 18:58:05       57 阅读
  4. Python语言-面向对象

    2024-07-09 18:58:05       68 阅读

热门阅读

  1. 雷电模拟如何换ip地址 手机模拟器ip修改方法

    2024-07-09 18:58:05       26 阅读
  2. 深入理解Qt的隐式共享机制

    2024-07-09 18:58:05       55 阅读
  3. 每天10个vue面试题(二)

    2024-07-09 18:58:05       30 阅读
  4. C# Winform权限、用户和菜单开发的顺序和注意点

    2024-07-09 18:58:05       27 阅读
  5. C++ 入门02:控制结构和循环

    2024-07-09 18:58:05       26 阅读
  6. C++多线程和循环队列

    2024-07-09 18:58:05       27 阅读
  7. 了解安全端口

    2024-07-09 18:58:05       31 阅读