Introduction to FTP and TFTP
Another common application layer protocol is the File Transfer Protocol (FTP). This is a text-based protocol, where the server and clients exchange text commands to upload and download files. The Rust ecosystem has a crate called rust-ftp to interact with FTP servers programmatically. Let us look at an example of its use. We set up our project using Cargo:
$ cargo new --bin ftp-example
Our Cargo.toml
should look like this:
[package] name = "ftp-example" version = "0.1.0" authors = ["Foo<[email protected]>"] [dependencies.ftp] version = "2.2.1"
For this example to work, we will need a running FTP server somewhere. Once we have set that up and made sure a regular FTP client can connect to it, we can move on to our main code:
// ch5/ftp-example/src/main.rs extern crate ftp; use std::str; use std::io::Cursor; use ftp::{FtpStream, FtpError}; fn run_ftp(addr: &str, user: &str, pass: &str) -> Result<(), FtpError> { let mut ftp_stream = FtpStream...