016 Rust 网络编程,FTP 示例

Github 地址#

源码地址:github.com/anonymousGiga

说明#

本示例使用 Rust 编写一个 FTP 的客户端,在客户端中进行下载和上传的演示。

客户端#

  • 在 Cargo.toml 文件中添加:

    [dependencies]
    ftp = "3.0.1"
  • 编写 src/main.rs 如下:

    use std::str;
    use std::io::Cursor;
    use ftp::FtpStream;
    fn main() {
      let mut ftp_stream = FtpStream::connect("127.0.0.1:21").unwrap();
      let _ = ftp_stream.login("andy1", "1").unwrap();
    
      println!("Current directory: {}", ftp_stream.pwd().unwrap());
    
      let _ = ftp_stream.cwd("upload").unwrap();
    
      let remote_file = ftp_stream.simple_retr("./test").unwrap();
      println!("Read file with contents\n{}\n", str::from_utf8(&remote_file.into_inner()).unwrap());
    
      let mut reader = Cursor::new("Hello from the Rust \"ftp\" crate!".as_bytes());
      let _ = ftp_stream.put("hello", &mut reader);
      println!("Successfully wrote hello");
    
      let _ = ftp_stream.quit();
    }

测试#

按照上一节《015 Rust 网络编程,FTP 介绍》中搭建 ftp server,并且创建用户 andy1,同时在 ftp_server/andy1 目录下创建 upload 文件夹,在文件夹放置一个 test 文件。
在当前工程目录下放置一个 hello 文件。

运行程序:

cargo run

在 ftp_server/andy1/upload 下会发现多了 hello 文件,而在终端中则会打印 ftp_server/andy1/upload/test 文件的内容。

本作品采用《CC 协议》,转载必须注明作者和本文链接
令狐一冲
文章
255
粉丝
122
喜欢
308
收藏
128
排名:328
访问:2.9 万
私信
所有博文
社区赞助商