FileZilla是一種快速、可信賴的FTP用戶端以及伺服器端開放原始碼程式,具有多種特色、直覺的介面。本文就給大家分析下FileZilla的原始碼。
< type="text/javascript"> < src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> < type="text/javascript"> < src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
WM_FILEZILLA_SERVERMSG:
wParam代表大的分類, 即是何種訊息, lParam是附加的資訊, 具體根據wParam的不同而不同。
wParam有以下幾種:
FSM_STATUSMESSAGE:
記錄當前活動, 並將活動資訊在admin視窗上顯示, 並且記錄到log檔案中(需要設定相應選項),開啟admin視窗,上半部分顯示的內容就是從裡來的。
lParam帶的是t_statusmsg結構, 裡面記錄了當前活動的user, ip, time, message等
如:
(000001) 2006-7-23 16:03:56 - (not logged in) (127.0.0.1)> USER whg
(000001) 2006-7-23 16:03:59 - (not logged in) (127.0.0.1)> 331 Password required for whg
(000001) 2006-7-23 16:04:05 - (not logged in) (127.0.0.1)> PASS *
(000001) 2006-7-23 16:04:11 - robert (127.0.0.1)> 230 Logged on
FSM_CONNECTIONDATA:
這是跟connection相關的訊息,如建立了串連,使用者登入成功,使用者退出等等。資訊發送到admin視窗,顯示在admin視窗的下半部分,即ID、Account、IP等內容。
lParam帶的是t_connop結構, 結構中成員op代表更詳細的connection分類,可能值有:
USERCONTROL_CONNOP_ADD
有新使用者進行串連(還未登入)
USERCONTROL_CONNOP_CHANGEUSER
登入成功
USERCONTROL_CONNOP_REMOVE
使用者退出,或者因為time被強行登出
USERCONTROL_CONNOP_TRANSFERINIT
傳輸開始或結束, 即與用戶端有資料通訊,如開始傳輸資料,ls命令也會導致資料的傳輸。
USERCONTROL_CONNOP_TRANSFEROFFSETS
顯示傳輸進度,如在進行檔案傳輸的過程中,需要向admin視窗顯示當前的傳輸位元組數,傳輸速率等
所有的這些資訊都會在admin視窗的下半部分中顯示。
FSM_THREADCANQUIT:
系統退出時會發出這些訊息,系統在處理這個訊息時,會結束線程
FSM_SEND:
系統只要發送了資料,都會發送這個訊息,並且在admin視窗的狀態條中顯示目前使用者用發送了多少資料
FSM_RECV:
系統只要接收到資料,都會發送這個訊息,並且在admin視窗的狀態條中顯示目前使用者用收到了多少資料
可見,CServer處理的訊息應該只是一些admin或者status訊息,這些訊息應該線上程listen, accep處理相應的ftp請求時發出。真正的FTP處理並不在這裡。
< type="text/javascript"> < src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">
通過文章完整的描述,大家應該知道了FileZilla 原始碼,希望對大家有協助!
- FileZilla 原始碼分析1
- FileZilla簡單介紹
- FileZilla:免費的伺服器軟體
- FileZilla 3.3.1.0新版升級 修複bug
- FileZilla FTP 用戶端硬式編碼密碼索引關鍵漏洞
- FileZilla Server