【正文】
le)。if(SUCCEEDED(hr)){// Get a pointer to IPersistFile interface for saving shortcuthr = pIShellLinkQueryInterface(IID_IPersistFile,(void **)amp。// Get a pointer to the IShellLink = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,IID_IShellLink,(void **)amp。WCHAR pLinkUnicode[MAX_PATH]。if(bFound){// Proceed to create the shortcutIShellLink *pIShellLink = NULL。// Find the current user39。BOOL bFound = FALSE。PFNSHGETFOLDERPATHA pSHGetFolderPath = NULL。return pSHGetFolderPath。// Load only once if(!hMod)hMod = LoadLibrary(”“)。} PFNSHGETFOLDERPATHA GetFuncPtr_SHGetFolderPathA(){ static HMODULE hMod = NULL。// Store application39。s full path.::GetModuleFileName(NULL, szFullPath, MAX_PATH)。TCHAR szDrive[_MAX_DRIVE]。 strAppDir){ TCHAR szFullPath[MAX_PATH]。msg)。msg)。// window messagewhile(PeekMessage(amp。} return strResult。// strResult is empty}lpMallocFree(lpItemIDList)。t work!AfxMessageBox(”Failed to get directory“, MB_ICONSTOP|MB_OK)。return strResult。return strResult。39。if((lpItemIDList = ::SHBrowseForFolder(amp。 = 0。 = nFlags。 = szDisplayName。 = hWnd。char szDisplayName[_MAX_PATH]。lpMalloc)!= NOERROR){// failed to get allocatorreturn strResult。LPMALLOC lpMalloc。四、參考文獻[1][D].電子科技大學,2005.[2]王占軍,王偉,[J].沈陽師范大學學報(自然科學版),2012,03:375377.[3]吳珂,盧秉亮,[J].沈陽航空工業(yè)學院學報,2006,04:、源代碼// : source file that includes just the standard includes // will be the prepiled header // will contain the prepiled type informationinclude “” CString BrowseForFolder(HWND hWnd, LPCSTR lpszTitle, UINT nFlags){ // We39。用戶能夠選擇相應的數(shù)據(jù)傳輸模式,對指定的文件進行上傳下載。用戶還可以將用戶各種信息都記錄在服務器日志里,如圖10所示。圖9 在線用戶窗口(3)配置模塊的功能:配置FTP服務器所有的設置。圖7 用戶帳戶窗口 查看功能模塊(1)服務器日志模塊的功能:在此屏幕,記錄客戶端與服務器端的連接信息以及傳輸信息,當客戶端登陸服務器時服務器日志會顯示是否與服務器連接成功,當客戶端要上傳文件或是下載文件成功時會記錄服務器和FTP客戶端的詳細資料,從而有助于您追蹤服務器與客戶端之間所有的通訊訊息,數(shù)目之間的方括號[ ]是線程ID,如圖8所示。設制服務端允許客戶端的權限,例如允許客戶端可以下載,上傳,重命名哪些服務器端的文件內(nèi)容。的路徑文件夾的名稱)。目錄屬性,當您添加的編輯目錄的用戶帳戶,目錄屬性對話框?qū)@示物理目錄(物理目錄是39。并將其添加到用戶帳戶對話框,創(chuàng)建用戶名,如圖6所示。查看菜單包括:服務器日志,在線用戶,配置,統(tǒng)計,安全等功能。菜單攔包括:服務器,查看。值得注意的是,一個給定的Carchive對象只能在單一的方向上傳遞數(shù)據(jù):或者接收,或者發(fā)送。當然,該Carchive對象應該與前面的CSocketFile對象建立聯(lián)系。建立CSocketFile對象,并且使該對象與CSocket對象具備一定的聯(lián)系。調(diào)用Listen,開始監(jiān)聽從客戶端發(fā)來的訪問請求。圖5 服務器用戶界面 主要功能與實現(xiàn)用CSocket類編制的服務器端的程序,其過程如下,其過程主要是: 創(chuàng)建CSocket對象。2 主界面 程序界面主要包括服務器日志、在線用戶、統(tǒng)計信息、安全管理、菜單欄、工具欄、狀態(tài)欄。二、系統(tǒng)設計與實現(xiàn) 功能要求本系統(tǒng)是一個在局域網(wǎng)內(nèi)實現(xiàn)的小型FTP文件傳輸服務器。而數(shù)據(jù)連接端口號的選擇依賴于控制連接上的命令,通常是客戶發(fā)送一個控制消息來指定客戶需要建立一個數(shù)據(jù)連接來傳輸ftp數(shù)據(jù)(如下載/上載一個文件,顯示當前目錄的內(nèi)容等等,都需要建立數(shù)據(jù)連接來傳輸數(shù)據(jù)),在該消息中,指定了客戶監(jiān)聽并等待連接的端口號,而服務器從控制連接收到該命令,向客戶端發(fā)起一個連接請求到消息中指定的端口號,客戶端收到該請求以后就會建立一個數(shù)據(jù)連接。PI之間的連接一般被稱作控制連接(control connection),DTP之間的連接被稱作數(shù)據(jù)連接(data connection)。如圖2所示。一個FTP會話通常包括五個軟件元素的交互。一般來說,要傳輸文件的用戶需先經(jīng)過認證以后才能登錄ftp服務器,訪問在遠程服務器的文件?;ヂ?lián)網(wǎng)文件傳輸協(xié)議(File Transfer Protocol)標準是在FTC959說明的。PORT模式是一個主動模式,PASV是被動模式,二者都是相對于服務器而言的。FTP需要2個端口,一個端口是控制連接端口,也即21端口,用于發(fā)送指令給服務器并等待服務器響應;另一個端口是數(shù)據(jù)傳輸端口,端口號為20(僅PORT模式),用于建立數(shù)據(jù)傳輸通道。Internet成為了一個巨型的軟件倉庫。以達到資源共享和傳遞信息的目的。用戶接口 控制連接控制進程控制進程命令與應答數(shù)據(jù)連接數(shù)據(jù)傳送進程數(shù)據(jù)傳送進程文件傳輸圖1 FTP的基本模型FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP,這樣FTP客戶在和服務器建立連接前就要經(jīng)過一個被廣為熟知的“三次握手”的過程,它帶來的意義在于客戶與服務器之間的連接是可靠的,而且是面向連接,為數(shù)據(jù)的傳輸提供了可靠的保證。服務器有兩個構件:服務器控制進程和服務器數(shù)據(jù)傳送進程。圖1給出了FTP的基本模型。只有當FTP服務器支持各種協(xié)議和指令時,才能夠開發(fā)相應的客戶端程序。通常服務器端是遠程端點,用戶可以通過Internet網(wǎng)絡連接到遠程的FTP服務器站點。從根本上說,F(xiàn)TP就是在網(wǎng)絡中各種不同的計算機之間按照TCP/IP協(xié)議來傳輸文件。FTP是TCP/IP提供的標準機制,實現(xiàn)從一臺主機向另一臺主機傳送文件的任務。本文基于FTP協(xié)議搭建了一個FTP服務器,實現(xiàn)簡單的上傳下載功能?!跋螺d”文件就是從遠程主機拷貝文件至自己的計算機上;“上傳”文件就是將文件從自己的計算機中拷貝至 遠程主機上?;诓煌牟僮飨到y(tǒng)有不同的FTP應用程序,而所有這些應用程序都遵守同一種協(xié)議以傳輸文件。用于Internet上的控制文件的雙向傳輸。意見建議:建議按列支相關經(jīng)費,組織相關人員進行培訓,應急演練,改造等工作的開展。四、整改辦法與措施:加強計算機操作技術水平,網(wǎng)絡安全技術方面的培訓;強化計算機操作人員對病毒,信息安全的