自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在鴻蒙設(shè)備上運行TFTP服務(wù)器,實現(xiàn)文件上傳、下載、保存

系統(tǒng)
我開始嘗試——將TFTP服務(wù)器移植到鴻蒙Hi3861開發(fā)板上。經(jīng)過半天的移植和一天的調(diào)試,終于把TFTP服務(wù)器在Hi3861上移植成功了。

[[355258]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

昨天唐老師發(fā)布了能夠運行在鴻蒙Hi3861開發(fā)板上的Python解釋器,還不知道的可以去看看唐老師的帖子,:-)

我們知道,Python是一種腳本語言,可以解釋執(zhí)行,不需要編譯。有了Python解釋器,大家可能會希望——如果能直接把Python腳本文件上傳到開發(fā)板上,然后發(fā)個命令就可以執(zhí)行就好了,而不需要像C代碼那樣需要編譯、燒錄 才能運行。

于是,我開始嘗試——將TFTP服務(wù)器移植到鴻蒙Hi3861開發(fā)板上。經(jīng)過半天的移植和一天的調(diào)試,終于把TFTP服務(wù)器在Hi3861上移植成功了。

沒錯,在內(nèi)存352KB、閃存2M 的Hi3861開發(fā)板上成功運行了一個TFTP服務(wù)器,你可以將PC上的文件上傳到開發(fā)板上,而且可以斷電持久保存!當然,你上傳的文件不能太大。

以下是整個移植和調(diào)試過程中的關(guān)鍵過程記錄。

TFTP是什么?

TFTP是簡單文件傳輸協(xié)議 Trivial File Transfer Protocol的英文縮寫。

TFTP是基于UDP的,協(xié)議本身比較簡單,它的RFC 1350官方文檔也只有11頁(TCP的RFC 793文檔有85頁)。

如果大家如果有興趣,完全可以自己從零實現(xiàn)一個;而我為了能夠快速驗證在Hi3861的可行性,選擇了直接移植。

TFTP服務(wù)器實現(xiàn)了哪些功能?

已經(jīng)實現(xiàn)了TFTP該有的功能:

1. 支持文件上傳;

2. 支持文件下載;

3. 支持文件持久保存,使用了鴻蒙的文件系統(tǒng)API接口。

運行效果

PC通過網(wǎng)線連接無線路由器,虛擬機網(wǎng)口橋接網(wǎng)卡,IP地址:192.168.1.157;

開發(fā)板連接通過WiFi連接到無線路由器,IP地址:192.168.1.151 ;

下圖是運行效果,左邊為虛擬機上 shell 執(zhí)行的命令;


其中的用到的幾個命令格式為:

1. put命令,將本地文件上傳到服務(wù)器,格式:put localfile remotefile

2. get命令,將服務(wù)器上的文件下載到本地,格式:get remotename localname

3. quit命令,退出會話

想嘗試運行效果的,可以直接下載本帖附件的代碼進行編譯,運行。

如何編譯

1. 將本帖附件tftp代碼解壓到openharmony源碼頂層目錄;

2. 修改openharmony的build/lite/product/wifiiot.json文件:

將其中的//applications/sample/wifi-iot/app替換為//tftp:tftp;

3. 在openharmony源碼的頂層目錄,執(zhí)行python build.py wifiiot;

調(diào)試過程中用到的工具和方法

除了常規(guī)的串口工具之外,還用到了幾個工具(移植其他網(wǎng)絡(luò)協(xié)議時可供參考):

1. tftp 客戶端命令行工具(sudo apt install tftp下載);

2. tcpdump 抓包工具;

抓取某個網(wǎng)口上的全部數(shù)據(jù)包:sudo tcpdump -i eth0 -w tftp.pcap (-i 指定網(wǎng)口,-w 指定保存的數(shù)據(jù)文件)

3. WireShark 抓包和分析工具;

tcpdump抓到的數(shù)據(jù)包是這個網(wǎng)口上的全部數(shù)據(jù),用WireShark分析時,可以用過濾表達式:tftp 過濾TFTP協(xié)議的數(shù)據(jù)包;

解決的問題

移植過程中解決了這么幾個問題:

1. 解決了報錯"Mode too long/not NULL terminated",導(dǎo)致的上傳失敗;

2. 解決了文件讀取時size超過了文件實際尺寸的問題;

3. 解決了DATA響應(yīng)數(shù)據(jù)為空,導(dǎo)致的下載失敗的問題;

附件說明

1. tftp.zip 是本移植項目源碼;

2. rfc1350.pdf 是TFTP協(xié)議參考文檔。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2015-10-08 09:38:24

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-09-29 09:25:20

HTTP網(wǎng)絡(luò)協(xié)議

2015-10-09 09:41:24

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-10-10 16:46:14

HTTP網(wǎng)絡(luò)協(xié)議文件傳輸

2015-09-28 13:39:13

Http網(wǎng)絡(luò)協(xié)議HTTP

2010-09-09 17:46:43

TFTP服務(wù)器

2022-07-18 10:15:14

文件傳輸協(xié)議TFTPLinux

2010-09-09 17:54:07

TFTP服務(wù)器

2010-09-10 16:19:31

配置tftp服務(wù)器

2019-09-23 11:46:02

FedoraTFTP服務(wù)器 Linux

2010-09-14 11:24:03

Windows tft

2010-05-19 10:31:07

IIS服務(wù)器

2011-08-18 16:03:34

iPhone上傳圖片

2010-09-14 13:55:27

redhat 9 tf

2009-06-17 16:56:45

JBoss服務(wù)器JSF實現(xiàn)

2010-01-12 15:10:23

華為交換機配置備份

2022-03-01 20:33:50

服務(wù)web項目

2022-11-10 15:17:43

Windows文件Linux

2024-06-19 10:43:44

2010-09-14 13:47:44

tftp服務(wù)器搭建
點贊
收藏

51CTO技術(shù)棧公眾號