日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ftp客户端概要设计

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ftp客户端概要设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Ftp客戶端概要設計


1.概述

? ? ? ? ftp是基于TCP的文件傳輸協議,主要是用于控制遠程文件,如下載、上傳、續傳、重命名、刪除等。其命令是基于可見字符,易于理解的方式交互的。客戶端與服務器端的交互遵循一應一答的方式,而且各命令間遵循一定的順序。

FTP的應答原則:

a.??????所有應答都以3個數字開頭以“\r\n”結束

b.?????一個應答的第4位如果為’-’,表示還有后續應答,說明一個命令對應了多個應答

c.??????對應一個命令的多個應答,其前面的3個數字一樣

d.?????非命令的傳輸都需要開通另外的通道,并且事先需要說明是主動還是被動


FTP客戶端需要實現的功能:

a.??????登錄、退出

b.?????列出指定路徑下的所有文件名稱

c.??????下載文件

d.?????上傳文件

e.??????續傳文件(上傳和下載)

f.??????創建目錄

g.?????重命名文件

功能要求:

a.??????同時可以上傳和下載多個文件,并不相互影響;

b.?????隨時可以終止正在上傳或下載的文件,并后續續傳;

c.??????在上傳和下載的過程中不影響其他命令的執行;

d.?????上傳和下載文件可以顯示進度信息


?

2.模塊設計

? ? ? ? ?根據概述中的說明,建立如下的模塊關系:


? ? ? ? 對外操作的接口最終轉入控制實例中操作。對于外部傳入的ftp基本信息(如服務器名、端口號、用戶名密碼等信息)需存入基本信息模塊。操作模塊依賴基本信息模塊和傳輸控制模塊。一個操作模塊完成簡單的一次操作,如列出文件列表、上傳文件、下載文件。如果需要多個上傳或者下載操作則創建多個操作模塊。

控制實例的主要作用是:有效組織一個或多個操作模塊。

?


?

3.接口設計

由于時間關系,這邊實現概述中部分功能。

/**

?*????????? 設置當前字符集

?*/

bool SetCharset(char* charSet);

?

/**

?*????????? 登錄ftp服務器

?*@host???????????????????? 主機名稱,IP地址或者域名

?*@port???????????????????? ftp服務器端口,默認可以填21

?*@userName?????????? ftp用戶名,為NULL表示匿名登錄

?*@password??????????? 用戶名對應的密碼

?*@return?????????? 登錄成功返回true,否則返回false

?*/

bool Login(char* host,unsigned shortport,char* userName,char* password);

?

/**

?*????????? 退出ftp服務器,會中斷所有傳輸操作

?*@return?????????? 登錄成功返回true,否則返回false

?*/

bool Logout();

?

/**

?*????????? 創建目錄

?*@dirPath? 以'/'開頭,必須為絕對路徑

?*/

bool Mkdir(char* dirPath);

?

/**

?*????????? 將本地文件上傳到服務器上

?*@localFile????????????? 本地文件

?*@remoteFile????????? 服務器的文件(絕對路徑)

?*@callback???????????? 傳輸回調函數,參考FtpTransferCallback的定義

?*@lpcontext????????? ??回調函數的上下文參數

?*@return?????????????? 返回控制句柄,通過該句柄可以終端傳輸等

?*/

int PutFile(char* localFile,char*remoteFile,FtpTransferCallback callback,LPVOID lpcontext);

?

/**

?*????????? 將內存中的數據上傳到服務器上的文件中保存

?*@buffer????????? 內存中的數據

?*@nLen?????????????????? 數據長度

?*@remoteFile?????????? 服務器的文件(絕對路徑)

?*@callback???????????? 傳輸回調函數,參考FtpTransferCallback的定義

?*@lpcontext??????????? 回調函數的上下文參數

?*@return?????????????? 返回控制句柄

?*/

int PutBuffer(BYTE* buffer,int nLen,char*remoteFile,FtpTransferCallback callback,LPVOID lpcontext);

?

/**

?*????????? 獲取下載服務器上的文件

?*@remoteFile????????? 服務器上的路徑(絕對路徑)

?*@localFile????????????? 本地文件路徑

?*@callback???????????? 傳輸回調函數,參考FtpTransferCallback的定義

?*@lpcontext??????????? 回調函數的上下文參數

?*@return?????????????? 返回控制句柄

?*/

int GetFile(char* remoteFile,char*localFile,FtpTransferCallback callback,LPVOID lpcontext);

?

/**

?*????????? 下載服務器上的文件到指定的內存中

?*@remoteFile????????? 服務器上的文件(絕對路徑)

?*@buffer????????? 指定的內存

?*@nLen?????????????????? 可用的內存大小

?*@callback???????????? 傳輸回調函數,參考FtpTransferCallback的定義

?*@lpcontext??????????? 回調函數的上下文參數

?*@return?????????????? 返回控制句柄

?*/

int GetFileToBuffer(char* remoteFile,BYTE*buffer,int nLen,FtpTransferCallback callback,LPVOID lpcontext);

?

/**

?*????????? 在ftp服務器上查找相應的文件

?*@findFile??????? 需要查找的文件(絕對路徑),查找絕對路徑下的所有文件

?*@return?????????? 成功返回查找到的文件個數

?*???????????????? 沒有找到文件則返回0

?*/

int?? FindFile(char*findFile);

?

/**

?*????????? 獲取下一個文件信息

?*@lpFileInfo?????????? 文件屬性

?*@return?????????? 成功返回true,遍歷完或失敗返回false

?*/

bool NextFile(OUT LPFtpFileInfolpFileInfo);

?

附件1 FTP命令表:

命令

描述

ABOR

中斷數據連接程序

ACCT <account>

系統特權帳號

ALLO <bytes>

為服務器上的文件存儲器分配字節

APPE <filename>

添加文件到服務器同名文件

CDUP <dir path>

改變服務器上的父目錄

CWD <dir path>

改變服務器上的工作目錄

DELE <filename>

刪除服務器上的指定文件

HELP <command>

返回指定命令信息

LIST <name>

如果是文件名列出文件信息,如果是目錄則列出文件列表

MODE <mode>

傳輸模式(S=流模式,B=塊模式,C=壓縮模式)

MKD <directory>

在服務器上建立指定目錄

NLST <directory>

列出指定目錄內容

NOOP

無動作,除了來自服務器上的承認

PASS <password>

系統登錄密碼

PASV

請求服務器等待數據連接

PORT <address>

IP 地址和兩字節的端口 ID

PWD

顯示當前工作目錄

QUIT

從 FTP 服務器上退出登錄

REIN

重新初始化登錄狀態連接

REST <offset>

由特定偏移量重啟文件傳遞

RETR <filename>

從服務器上找回(復制)文件

RMD <directory>

在服務器上刪除指定目錄

RNFR <old path>

對舊路徑重命名

RNTO <new path>

對新路徑重命名

SITE <params>

由服務器提供的站點特殊參數

SIZE <filename>

獲取服務器上文件的大小

SMNT <pathname>

掛載指定文件結構

STAT <directory>

在當前程序或目錄上返回信息

STOR <filename>

儲存(復制)文件到服務器上

STOU <filename>

儲存文件到服務器名稱上

STRU <type>

數據結構(F=文件,R=記錄,P=頁面)

SYST

返回服務器使用的操作系統

TYPE <data type>

數據類型(A=ASCII,E=EBCDIC,I=binary)

USER <username>>

系統登錄的用戶名

?

附件2 FTP響應表:

響應代碼

解釋說明

110

新文件指示器上的重啟標記

120

服務器準備就緒的時間(分鐘數)

125

打開數據連接,開始傳輸

150

打開連接

200

成功

202

命令沒有執行

211

系統狀態回復

212

目錄狀態回復

213

文件狀態回復

214

幫助信息回復

215

系統類型回復

220

服務就緒

221

退出網絡

225

打開數據連接

226

結束數據連接

227

進入被動模式(IP 地址、ID 端口)

230

登錄因特網

250

文件行為完成

257

路徑名建立

331

要求密碼

332

要求帳號

350

文件行為暫停

421

服務關閉

425

無法打開數據連接

426

結束連接

450

文件不可用

451

遇到本地錯誤

452

磁盤空間不足

500

無效命令

501

錯誤參數

502

命令沒有執行

503

錯誤指令序列

504

無效命令參數

530

未登錄網絡

532

存儲文件需要帳號

550

文件不可用

551

不知道的頁類型

552

超過存儲分配

553

文件名不允許


作者:wjh_2010@163.com

如果需要動態庫(共享庫)請以郵件的方式聯系作者。

?

總結

以上是生活随笔為你收集整理的Ftp客户端概要设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区在线免费观看 | 欧美xxxx喷水 | 成人欧美一区二区三区黑人免费 | 黄色免费一级 | 喷水av| 一区二区三区视频在线观看免费 | 中文字幕第22页 | 九九九在线 | 手机在线看片日韩 | 一级特黄aaa | 久久久久久九九九九 | 国产成人av免费看 | 国产成人激情 | 国产精品区在线观看 | 久草成人在线视频 | 爱爱小视频免费看 | 女同互舔视频 | 国产成人av免费 | 欧美怡红院视频一区二区三区 | 国产在线视频网 | 国产精品伦一区二区三区免费看 | 成人福利av | av网站大全免费 | 杏导航aⅴ福利网站 | 亚色视频在线观看 | 一本久道久久综合 | 黄色片一级| 熟妇人妻中文av无码 | 久久午夜精品视频 | 美女诱惑av | 欧美大片免费播放器 | 久久久久久美女 | 一级黄色片免费播放 | xx视频在线 | 一区二区三区在线免费视频 | 午夜视频一区二区 | a天堂v| 国产对白在线 | 麻豆av一区二区三区在线观看 | 久久理论电影 | 少妇av片 | av在线手机观看 | 9999免费视频| 乱色欧美 | 国产精品视频观看 | 日本中文在线观看 | 一本无码aⅴ久久久国产 | av在线亚洲天堂 | 神马午夜我不卡 | 色噜噜亚洲| 欧美激情片一区二区 | 欧美色88| 催眠调教艳妇成肉便小说 | 五月天视频网站 | 在线看毛片网站 | 亚洲欧美精品 | 久久久久久久影视 | 亚洲一区二区三区四区在线观看 | 黄色免费91 | 亚洲国产日韩欧美在线观看 | 午夜剧场在线 | 三级在线观看网站 | 操操综合网 | 日本久久精品视频 | 国产黄色片免费观看 | 91色交| 免费精品无码AV片在线观看黄 | 丰满熟妇人妻中文字幕 | 色偷偷成人| 麻豆久久久 | 制服.丝袜.亚洲.中文.综合懂色 | 国产污网站 | 亚洲不卡在线视频 | 操干网 | 在线观看视频一区二区 | 深夜视频在线观看免费 | 欧美无遮挡高潮床戏 | 欧洲精品无码一区二区 | 色女人网站| 她也啪在线视频 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 91精品国产麻豆国产自产在线 | 看黄色大片 | 麻豆精品av | av色网站 | 亚洲视频在线观看一区二区三区 | 久久国产福利 | 欧美xxxx喷水 | 免费日b视频 | 午夜久久网 | 不卡视频在线播放 | 中文字幕手机在线视频 | 久久久久久福利 | 国产日本一区二区三区 | 国产成人毛片 | 亚洲丝袜色图 | 波多野结衣mp4 | 久久国产精品无码一区二区 | 一路向西在线看 |