本例子用rust程式實現乙個tftp_server,然後使用tftp客戶端進行測試。
cargo new use_tftp
[dependencies]
tftp_server = "0.0.3"
use tftp_server::server::tftpserverbuilder;
use std::net::socketaddr;
use std::str::fromstr;
fn main() ", 69);
let socket_addr = socketaddr::from_str(addr.as_str()).expect("error parsing address");
let builder = tftpserverbuilder::new().addr(socket_addr);
let mut server = builder.build().unwrap();
match server.run() ", e),
}}
sudo ./target/debug/use_tftp -p 69
在本例子中,我們使用tftp-hpa,安裝命令如下:
sudo apt-get install tftp-hpa
執行如下:
tftp 127.0.0.1
在當前目錄下新建乙個檔案test,然後在tftp客戶端上使用如下命令上傳:
put test
在我們新建的tftp server專案 use_tftp/target/debug/目錄下,可以看到上傳的test檔案。 java網路程式設計之TFTP(一)
tftp使用了udp套接字,效率比較高,但是也要求tftp為資料傳輸的不可靠負責。tftp伺服器在69埠上監聽到來的資料報,客戶端使用乙個隨機的埠號 tftp作用 許多無盤工作站使用tftp來載入它們需要的來自伺服器的檔案。每個資料報有乙個操作碼opcode 16 bits 表示包的型別,有五種 1...
010 Rust網路程式設計,cargo構建指令碼介紹
此章節並不是只有rust網路程式設計的內容,但是由於後續的例子有些依賴於此知識點,所以放在rust網路程式設計系列中做簡單介紹。參考資料主要是官方文件 cargo之書 在實際的專案中,有些包需要編譯第三方非rust 例如 c庫 有些包需要鏈結到 c庫,當然這些庫既可以位於系統上,也可以從源 構建。其...
012 Rust 網路程式設計,gRPC 演示示例
本例子的功能為grpc客戶端向服務端寫入位置資訊和讀取位置資訊,演示環境為ubuntu。安裝protobuf編譯器 apt install protobuf compilercargo new use grpc lib 記住這個名字use grpc,因為在編寫 的時候要用在use grpc目錄下,建...