亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ESFramework Demo -- 簡單的FTP服務(wù)器Demo(

系統(tǒng) 2053 0

FTP服務(wù)器最核心的功能就是提供文件的上傳、下載服務(wù)。在 ESFramework Demo -- 文件傳送Demo(附源碼) 一文中,我們演示了如何在客戶端與客戶端之間相互傳送文件,現(xiàn)在我們就實(shí)現(xiàn)一個(gè)簡單的FTP服務(wù)器,以演示如何在客戶端與服務(wù)器之間傳送文件。在閱讀本文之前,請(qǐng)務(wù)必先掌握 ESFramework 開發(fā)手冊(cè)(03) -- 文件(夾)傳送 一文中介紹的文件傳送的流程及相關(guān)的API的用法。

本Demo主要演示以下功能:

(1)客戶端瀏覽服務(wù)器默認(rèn)目錄下的所有文件。

(2)客戶端上傳文件到服務(wù)器的默認(rèn)目錄下。

(3)客戶端可以下載服務(wù)器默認(rèn)目錄下任何一個(gè)文件。

一.定義信息類型

根據(jù)上面提到的功能需求,我們需要定義相應(yīng)的信息類型:

上傳文件就不用定義額外的信息類型了,可以直接使用IFileOutter的請(qǐng)求發(fā)送文件方法就可以了。

二.服務(wù)端

服務(wù)端將文件目錄設(shè)定在運(yùn)行目錄下的"FileFold"文件夾,所有上傳的文件都將被保存到這個(gè)目錄,所有要下載的文件也來自這個(gè)目錄。

服務(wù)端的CustomizeHandler類實(shí)現(xiàn)了自定義信息處理器接口ICustomizeHandler,當(dāng)收到來自客戶端的FtpInformationTypes.GetAllFileNames同步調(diào)用時(shí),就將FileFold目錄下的所有文件列表返回給客戶端。當(dāng)收到請(qǐng)求下載文件的信息時(shí),就調(diào)用IFileController.BeginSendFile方法將指定的文件發(fā)給客戶端。

當(dāng)客戶端要上傳文件時(shí),會(huì)直接調(diào)用IFileOutter的BeginSendFile,此時(shí),服務(wù)端將觸發(fā)IFileController的FileRequestReceived事件。所以,服務(wù)端需要預(yù)定并處理這個(gè)事件:

服務(wù)端將保存文件的路徑設(shè)定在FileFold目錄下,然后調(diào)用IFileController.BeginReceiveFile方法開始接收文件。當(dāng)然,這里的處理做了很多簡化,比如沒有判斷磁盤空間是否足夠、是否有同名文件等等。

三.客戶端

客戶端登錄成功后,進(jìn)入主界面。主界面初始化時(shí),將向服務(wù)器發(fā)送FtpInformationTypes.GetAllFileNames同步調(diào)用,然后將返回的文件列表顯示在ListView中。

雙擊ListView中的某個(gè)文件時(shí),就向服務(wù)器發(fā)送FtpInformationTypes.DownloadFile信息。就像上面描述的一樣,服務(wù)端就會(huì)調(diào)用IFileController.BeginSendFile方法發(fā)送指定的文件,然后,客戶端也會(huì)觸發(fā)IFileOutter.FileRequestReceived事件,處理這個(gè)事件時(shí),我們讓用戶選擇要存儲(chǔ)的路徑。

如果用戶取消了保存路徑的選擇,表示放棄下載文件,這樣就調(diào)用IFileOutter.RejectFile來進(jìn)行取消操作。
當(dāng)客戶端點(diǎn)擊上傳按鈕時(shí),就直接調(diào)用IFileOutter.BeginSendFile來準(zhǔn)備上傳文件。

這將引發(fā)服務(wù)端IFileController的FileRequestReceived事件觸發(fā),然后,服務(wù)端會(huì)調(diào)用IFileController.BeginReceiveFile方法,從而啟動(dòng)文件的正式傳遞。

下圖是客戶端正在進(jìn)行上傳下載文件時(shí)的截圖:

ESFramework Demo -- 簡單的FTP服務(wù)器Demo(附源碼)

本文是一個(gè)最簡單的演示 文件上傳 下載功能的demo,非常的粗糙,僅僅用于示范如何使用ESPlus提供的文件傳送功能在服務(wù)端和客戶端之間傳遞文件。若要正式開發(fā)一個(gè)文件服務(wù)器系統(tǒng),本文只能算是一個(gè)簡陋的起點(diǎn),還有很多復(fù)雜的事情要做,那已經(jīng)超出了本文的內(nèi)容,但你若有任何想法,歡迎與我們討論。

四.源碼下載

ESFramework.Demos.Ftp 源碼

閱讀 更多ESFramework開發(fā)手冊(cè)系列文章 。

-----------------------------------------------------------------------------------------------------------------------------------------------

關(guān)于ESFramework的任何問題,歡迎聯(lián)系我們:

電話:027-87638960

Q Q:372841921



ESFramework Demo -- 簡單的FTP服務(wù)器Demo(附源碼)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 韩国日本美国免费毛片 | 欧美精品在线看 | 日韩一区二区中文字幕 | 久久综合九色综合亚洲 | 日韩中文字幕高清在线专区 | 国产瑟瑟| 日本一区二区三区免费高清在线 | 久久精品加勒比中文字幕 | 一级录像| 久久a热6 | 亚欧有色亚欧乱色视频 | 免费在线观看的毛片 | 天天做天天爱夜夜大爽完整 | 欧美成a | 久久99精品这里精品3 | 欧美日韩精品一区二区三区四区 | 国产91小视频在线观看 | 亚洲视频aaa| 精品久久久久久免费影院 | 四虎精品久久 | 四虎最新在线 | 欧美日韩国产成人高清视频 | 欧美国产成人免费观看永久视频 | 九九视频在线观看视频6偷拍 | 九九影院理论片 | 亚洲伊人精品综合在合线 | 久久97久久97精品免视看 | 秘密影院久久综合亚洲综合 | 中午字幕在线观看 | 久久99久久99精品免观看麻豆 | 99热.| 久久九九免费视频 | 色综合亚洲天天综合网站 | 久热99 | 草草操 | 黄色片免费在线观看视频 | 夜夜骑狠狠干 | 亚洲图区综合 | 日本玖玖| 99精品视频在线 | 久久久久久国产精品三级 |