|
原因
在集中器終端和專變終端的實(shí)際應(yīng)用中,經(jīng)常會(huì)使用遠(yuǎn)程升級(jí)。在某些地方,用戶要求采用FTP進(jìn)行遠(yuǎn)程升級(jí)。將終端廠家的升級(jí)文件放在一個(gè)FTP服務(wù)器上,命令終端登錄FTP服務(wù)器,通過get命令獲取升級(jí)文件進(jìn)行升級(jí)。這樣,終端需要實(shí)現(xiàn)FTP客戶端。并且可以實(shí)現(xiàn)遠(yuǎn)程操作和傳輸。
原理

我們知道,F(xiàn)TP是一種文件傳輸協(xié)議,在網(wǎng)絡(luò)中屬于應(yīng)用層,基于TCP協(xié)議實(shí)現(xiàn)。而uip協(xié)議可以基于TCP鏈接進(jìn)行傳輸,方法可行。
登陸FTP服務(wù)器
與Telnet類似,會(huì)用FTP服務(wù)器之前,要先登陸。客戶端發(fā)起一個(gè)TCP連接,目標(biāo)端口號(hào)是FTP服務(wù)器的命令偵聽端口,一般是21,也有例外。當(dāng)連接成功后,服務(wù)器首先會(huì)發(fā)送歡迎信息,例如:“220-Microsoft FTP Service<CRLF>”和“220 FTP OF LEOGON_BOOK<
CRLF >”。FTP服務(wù)器的響應(yīng)都是以3個(gè)表示數(shù)字的字母開頭,表示響應(yīng)信息的代碼,接著是一個(gè)空格或‘-’字符,最后是響應(yīng)的信息內(nèi)容。響應(yīng)信息代碼是標(biāo)準(zhǔn)定義的,代表了特定的含義,響應(yīng)信息的內(nèi)容是提供給人工閱讀的,不同的FTP服務(wù)器可能會(huì)有不同的信息內(nèi)容表達(dá)方法,但是信息代碼是含義是明確的。響應(yīng)信息代碼后面如果是空格,表示響應(yīng)信息就只有一行或是最后一行,如果是‘-’,則表示有多行。因此,如果歡迎信息只有第2行的話,我們也應(yīng)該認(rèn)為可以繼續(xù)了。
收到FTP的歡迎信息后,就可以登陸了。首先是發(fā)送用戶名命令,使用“USER <username><CRLF>”命令。服務(wù)器返回“331 <username> access allowed, send identity (e-mail name) as password”,表示希望用戶繼續(xù)輸入密碼。接著發(fā)送密碼命令,使用“PASS <password><CRLF>”命令,服務(wù)器返回類似“230-Welcome to FTP site of LEOGON-BOOK!<CRLF>”和“230 Anonymous user logged in<CRLF>”這兩行(這是我Windows XP上的FTP服務(wù)器的響應(yīng)信息,我認(rèn)為某些服務(wù)器可能是返回一行,我們的程序只要能識(shí)別最后一行就可以了),這樣,登陸完成。如果密碼錯(cuò)誤,服務(wù)器將返回“530”代碼,如果想重試,必須從用戶名命令開始。
這種方案可以在stm32上實(shí)現(xiàn),再花幾十塊錢就可以實(shí)現(xiàn)遠(yuǎn)程操作了,此種方案可以應(yīng)用于個(gè)人的智能家居監(jiān)測控制系統(tǒng),上傳圖片,控制家里的家居,只要有自己的服務(wù)器就可以搞定,當(dāng)然加一個(gè)域名去訪問更完美了
參考資料下載 :http://www.zg4o1577.cn/bbs/dpj-40386-1.html
|
|