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

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

系統(tǒng) 1855 0

FTP服務(wù)器最核心的功能就是提供文件的上傳、下載服務(wù)。在 ESFramework Demo -- 文件傳送Demo(附源碼) 一文中,我們演示了如何在客戶端與客戶端之間相互傳送文件,現(xiàn)在我們就實(shí)現(xiàn)一個(gè)簡(jiǎn)單的FTP服務(wù)器,以演示如何在客戶端與服務(wù)器之間傳送文件。在閱讀本文之前,請(qǐng)務(wù)必先掌握 ESFramework 開(kāi)發(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è)目錄,所有要下載的文件也來(lái)自這個(gè)目錄。

服務(wù)端的CustomizeHandler類實(shí)現(xiàn)了自定義信息處理器接口ICustomizeHandler,當(dāng)收到來(lái)自客戶端的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方法開(kāi)始接收文件。當(dāng)然,這里的處理做了很多簡(jiǎn)化,比如沒(méi)有判斷磁盤空間是否足夠、是否有同名文件等等。

三.客戶端

客戶端登錄成功后,進(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來(lái)進(jìn)行取消操作。
當(dāng)客戶端點(diǎn)擊上傳按鈕時(shí),就直接調(diào)用IFileOutter.BeginSendFile來(lái)準(zhǔn)備上傳文件。

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

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

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

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

四.源碼下載

ESFramework.Demos.Ftp 源碼

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

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

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

電話:027-87638960

Q Q:372841921



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


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99国产精品免费视频观看 | 激情在线网站 | 久久99国产精品成人 | 午夜一级视频 | 在线观看深夜观看网站免费 | 欧美性猛交xxxxx按摩欧美 | 中文字字幕乱码视频 | 欧美一级第一免费高清 | 欧美ⅹxxxx视频 | 99热久久这里只有精品在 | 国产在视频线在精品 | a毛片成人免费全部播放 | 日日干天天爽 | 亚洲人和日本人hd | 国产精品视频一区二区猎奇 | 亚洲一区国产 | 国产普通话自拍 | 日韩中文字幕久久精品 | 起碰成人免费公开网视频 | 在线观看不卡视频 | 国产精品 视频一区 二区三区 | 久精品视频 | 深夜在线免费观看 | a视频在线播放 | 精品精品国产高清a毛片 | 日本a级精品一区二区三区 日本a毛片在线播放 | 精品69久久久久久99 | 在线高清免费爱做网 | 在线成人tv天堂中文字幕 | 国产精品柳州莫菁身材四 | 99精品视频不卡在线观看免费 | 2019亚洲日韩新视频 | 人与禽交免费网站视频 | 久久精品国产只有精品6 | 伊人伊狠亚洲综合影院 | 免费国产成人 | 爱操视频在线观看 | 亚洲欧洲免费 | 波多野结衣中文无毒不卡 | 欧美一级视 | 国产成综合 |