美文网首页RUST编程
016 Rust 网络编程,FTP 示例

016 Rust 网络编程,FTP 示例

作者: 令狐壹冲 | 来源:发表于2020-05-19 22:05 被阅读0次

    Github地址

    源码地址:https://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文件的内容。

    相关文章

      网友评论

        本文标题:016 Rust 网络编程,FTP 示例

        本文链接:https://www.haomeiwen.com/subject/lwsjohtx.html