溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎么用源代碼分析FileZilla

發(fā)布時(shí)間:2021-11-02 17:07:40 來(lái)源:億速云 閱讀:143 作者:柒染 欄目:系統(tǒng)運(yùn)維

本篇文章給大家分享的是有關(guān)怎么用源代碼分析FileZilla,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

FileZilla是一種快速、可信賴(lài)的FTP客戶(hù)端以及服務(wù)器端開(kāi)放源代碼程式,具有多種特色、直覺(jué)的接口。本文就給大家分析下FileZilla的源代碼。

FileZilla是開(kāi)源的FTP服務(wù)器,用C++寫(xiě)的,通過(guò)分析它的源代碼,可以掌握C++網(wǎng)絡(luò)編程以及高并發(fā)服務(wù)器的設(shè)計(jì)。

FileZilla是http://sourceforge.net上的項(xiàng)目,主頁(yè)是http://sourceforge.net/projects/filezilla,我們要研究的版本是:FileZilla Server 0_9_18,其實(shí)FileZilla還包括客戶(hù)端軟件。

下載后安裝,安裝時(shí)選擇安裝source,即安裝了源代碼。

安裝完成后,可以直接打開(kāi)工程自帶的FileZilla server.sln,這個(gè)是vs 2003.net工程,里面有三個(gè)project,

FZS Interface:這個(gè)是FTP服務(wù)器的設(shè)置以及監(jiān)控界面

Service:這個(gè)是核心的FTP服務(wù)器部分

GFtp:打不開(kāi),不知是干什么用的,老外也會(huì)如此馬虎? :)

直接編譯是會(huì)出錯(cuò),主要是FileZilla需要依賴(lài)兩個(gè)第三方包:zlib(壓縮算法包)以及regexp(正則表達(dá)式的包)

先搞定zlib,下載http://www.winimage.com/zLibDll/zlib123.zip

解開(kāi),生成目錄zlib123,用.net 2003打開(kāi)zlib123\projects\visualc6\zlib.dsw

打開(kāi) 生成|配置管理器,設(shè)置活動(dòng)的解決方案配置為:DLL Release,編譯生成項(xiàng)目zlib,成功后會(huì)在目錄Win32_DLL_Release下生成zlib1.lib和zlib1.dll

然后,regexp用到了boost第三方包,這里面有很多公用的C++組件,下載地址:

http://internap.dl.sourceforge.net/sourceforge/boost/boost_1_33_1.zip

解開(kāi)后,在cmd下,

***步:需要編譯bjm,這是編譯boost的編譯器,暈

cd boost_1_33_1\tools\build\jam_src

build.bat

在當(dāng)前的bin.ntx86目錄下,生成了bjam.exe文件。

第二步:編譯boost

cd boost_1_33_1

將剛才生成的bjam.exe拷過(guò)來(lái)

set VC7_ROOT="C:\Program Files\Microsoft Visual Studio.NET 2003\Vc7"

bjam "-sTOOLS=vc7" install

這個(gè)步驟需要很久時(shí)間,其時(shí)我們只用了里面的regexp包,應(yīng)該可以只編譯這個(gè)包,但我沒(méi)細(xì)研究。

編譯完成后即在C盤(pán)根目錄下生成了boost目錄,這個(gè)目錄下面.net工程要用到。

在.net工程里,工具|選項(xiàng)|項(xiàng)目|VC++目錄,添加

可執(zhí)行文件:zlib123\projects\visualc6\Win32_DLL_Release

包含文件:zlib123目錄以及c:\Boost\include\boost-1_33_1

庫(kù)文件:zlib123\projects\visualc6\Win32_DLL_Release以及c:\Boost\lib

這時(shí)FZS Interface工程應(yīng)該可以編譯成功了,編譯完成后會(huì)在Debug目錄生成FileZilla Server Interface.exe。

生成Service工程時(shí),需要調(diào)整一下工程設(shè)置:

語(yǔ)言設(shè)置:打開(kāi)工程屬性頁(yè),配置屬性|常規(guī),選擇字符集為“使用 Unicode 字符集”,否則編譯時(shí)會(huì)出錯(cuò)unicode必須使用;

鏈接設(shè)置:打開(kāi)工程屬性頁(yè),配置屬性|鏈接器,將輸入zlib.lib改成zlib1.lib(因?yàn)閦lib123工程生成的是zlib1.lib)

下面生成一下,應(yīng)該可以了。在生成Service工程完成時(shí)已經(jīng)自動(dòng)安裝了"FileZilla Server FTP server"服務(wù),也可以手工安裝服務(wù):

cd FileZilla_Server\Debug

"FileZilla server.exe" install auto

可以試一下這個(gè)FTP服務(wù)器了,運(yùn)行FileZilla_Server\interface\Debug\FileZilla Server Interface.exe,這是FTP服務(wù)器的配置監(jiān)控程序,試著加幾個(gè)user,設(shè)置home dir,再用FTP客戶(hù)端連接一下試試,應(yīng)該可以了。

以上就是怎么用源代碼分析FileZilla,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI