- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网际网路程式的设计
Visual Basic .NET網際網路程式設計 Chpater 12 12-1 FTP通訊協定介紹 FTP通訊協定是由RFC 959 File Transfer Protocol(FTP)所定義,在此RFC中,強調FTP的目的為: 檔案共享(Promote sharing of files (computer programs and/or data))。 透過應用程式直接或間接使用遠端主機(Encourage indirect or implicit (via programs) use of remote computers)。 提供一致性的協定,避免使用者在不同主機上產生不同的操作方式(Shield a user from variations in file storage systems among hosts)。 提供可靠及有效率的資料傳輸(Transfer data reliably and efficiently)。 12-1-1 FTP架構 FTP通訊協定與一般Client/Server應用最大的不同在於,一般的Client/Server應用程式,只會在Server端與Client端建立一個Socket連結,此連結同時處理Server端與Client端間連線以及資料的傳送。 FTP通訊協定則不同,Server端與Client端之間共建立兩個Socket連結,一個以FTP通訊協定預設之通訊埠21作為兩者間之通訊連線,另一個連結則是作為Client端傳送指令與Server端回應結果之用。 下圖為FTP之架構: 在FTP Server端中,分為Protocol Interpreter(PI)及Data Transfer Process(DTP)兩個模組,PI如同一般Server端應用程式,用以建立Server端Socket以等候(Listen)並接收(Accept)處理FTP Client端的連線請求(Connection Request),此連結會一直持續至Client端結束FTP應用程式為止(則下達QUIT指令)。 FTP Server端的DTP則專門處理FTP通訊協定所定義的特殊指令,如user、pass、get、put、cd、ls、pwd等,並將執行結果或訊息回傳至Client端,因此DTP主要是負責傳送資料(包括檔案)之用。 在Client端中,則分為Protocol Interpreter(PI)、Data Transfer Process(DTP)及User Interface(UI)三個模組,Client端PI主要用以與Server端建立通訊連結之用。DTP則是將使用者輸入之FTP指令傳送至Server端處理,並且接收Server端的回應(包括檔案的處理)。而UI則是提供使用者與PI間的互動界面,例如FTP命令列或圖形化界面。 12-1-2 FTP指令 除了上述連結方式的特殊之外,FTP通訊協定在指令與回應訊息上也有其特殊的定義方式。 一般用戶端常見的FTP指令如下所示: 但實際上透過FTP通訊協定傳至Server端的指令卻是如下表所示,而是經過對應轉換的: 在開發FTP Server端應用程式時,需特別注意,處理FTP指令應使用對應轉換過的指令為主。 Server端FTP指令均以大寫表示,均分別對應於一個Client端指令,共分為以下幾大類: 存取控制指令(Access Control Command):定義使用者的登錄名稱及密碼。 傳輸指令(Transfer Command):定義資料或檔案的傳輸模式。 服務指令(Service Command):定義處理檔案如上傳(Upload)、下載(Download)等的指令。 存取控制指令(Access Control Command): USER:用以表示使用者的登錄名稱,其語法為: USER username PASS:表示使用者密碼,其語法為: PASS password ACCT:與USER相同,均用以表示使用者的登錄名稱,但有些FTP Server並不會建制這個指令,其語法為: ACCT username CWD:為Change Working Directory(變更工作目錄)的縮寫,用以改變目前FTP Server的工作目錄,其語法為: CWD pathname CDUP:為Change to Parent Directory的意思,用以改變FTP Server至使用者根目錄(Home Directory),相對應於FTP Client端指令為cd。 QUIT:用以結束FTP Client端與Server端的通訊連結。 傳輸指令(Transfer Command):定義資料或檔案的傳輸模式: PORT:
文档评论(0)