您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么用源代碼分析FileZilla,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
FileZilla是一種快速、可信賴的FTP客戶端以及服務器端開放源代碼程式,具有多種特色、直覺的接口。本文就給大家分析下FileZilla的源代碼。
FileZilla是開源的FTP服務器,用C++寫的,通過分析它的源代碼,可以掌握C++網絡編程以及高并發服務器的設計。
FileZilla是http://sourceforge.net上的項目,主頁是http://sourceforge.net/projects/filezilla,我們要研究的版本是:FileZilla Server 0_9_18,其實FileZilla還包括客戶端軟件。
下載后安裝,安裝時選擇安裝source,即安裝了源代碼。
安裝完成后,可以直接打開工程自帶的FileZilla server.sln,這個是vs 2003.net工程,里面有三個project,
FZS Interface:這個是FTP服務器的設置以及監控界面
Service:這個是核心的FTP服務器部分
GFtp:打不開,不知是干什么用的,老外也會如此馬虎? :)
直接編譯是會出錯,主要是FileZilla需要依賴兩個第三方包:zlib(壓縮算法包)以及regexp(正則表達式的包)
先搞定zlib,下載http://www.winimage.com/zLibDll/zlib123.zip
解開,生成目錄zlib123,用.net 2003打開zlib123\projects\visualc6\zlib.dsw
打開 生成|配置管理器,設置活動的解決方案配置為:DLL Release,編譯生成項目zlib,成功后會在目錄Win32_DLL_Release下生成zlib1.lib和zlib1.dll
然后,regexp用到了boost第三方包,這里面有很多公用的C++組件,下載地址:
http://internap.dl.sourceforge.net/sourceforge/boost/boost_1_33_1.zip
解開后,在cmd下,
***步:需要編譯bjm,這是編譯boost的編譯器,暈
cd boost_1_33_1\tools\build\jam_src
build.bat
在當前的bin.ntx86目錄下,生成了bjam.exe文件。
第二步:編譯boost
cd boost_1_33_1
將剛才生成的bjam.exe拷過來
set VC7_ROOT="C:\Program Files\Microsoft Visual Studio.NET 2003\Vc7"
bjam "-sTOOLS=vc7" install
這個步驟需要很久時間,其時我們只用了里面的regexp包,應該可以只編譯這個包,但我沒細研究。
編譯完成后即在C盤根目錄下生成了boost目錄,這個目錄下面.net工程要用到。
在.net工程里,工具|選項|項目|VC++目錄,添加
可執行文件:zlib123\projects\visualc6\Win32_DLL_Release
包含文件:zlib123目錄以及c:\Boost\include\boost-1_33_1
庫文件:zlib123\projects\visualc6\Win32_DLL_Release以及c:\Boost\lib
這時FZS Interface工程應該可以編譯成功了,編譯完成后會在Debug目錄生成FileZilla Server Interface.exe。
生成Service工程時,需要調整一下工程設置:
語言設置:打開工程屬性頁,配置屬性|常規,選擇字符集為“使用 Unicode 字符集”,否則編譯時會出錯unicode必須使用;
鏈接設置:打開工程屬性頁,配置屬性|鏈接器,將輸入zlib.lib改成zlib1.lib(因為zlib123工程生成的是zlib1.lib)
下面生成一下,應該可以了。在生成Service工程完成時已經自動安裝了"FileZilla Server FTP server"服務,也可以手工安裝服務:
cd FileZilla_Server\Debug
"FileZilla server.exe" install auto
可以試一下這個FTP服務器了,運行FileZilla_Server\interface\Debug\FileZilla Server Interface.exe,這是FTP服務器的配置監控程序,試著加幾個user,設置home dir,再用FTP客戶端連接一下試試,應該可以了。
以上就是怎么用源代碼分析FileZilla,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。