【正文】
系統(tǒng)的測試界面如下: 圖 4 系統(tǒng)運行界面 本系統(tǒng)鑒于快速準確文件傳輸功能實現(xiàn)的同時,能夠保證信息安全的保密性。 localpath:=Savedir。 if selectdirectory(39。 i:integer。 測試方案 局域網(wǎng)的文件傳輸系統(tǒng)既是服務(wù)器端,又是客戶端。 end。)。 localdir:=strpas(localroot)。)。 GetMem(localroot,255)。then //接收文件夾信號 begin if selectdirectory(39。 fs:tfilestream。 end。 (remotedir)。 begin try psocket:=(nil)。Remotedir:String)。\39。.39。 end。TRUE39。 begin try csocket:=(nil)。 dir:=dir+39。\39。 freeonterminate:=true。TRANSDIR39。,0)。 Rdir:stringarray。 //保存文件 var filename:pchar。 第 17 頁 共 26頁 服務(wù)器端將收到的文件流重組以后通過 Delphi組件 SaveDialog設(shè)置保存路徑并保存到本地文件夾,其源代碼如下: 局域網(wǎng)內(nèi)文件夾傳輸 在人們的日常生活中,很多時候不僅僅需要進行單個文件的共享,而是需要進成百上千個文件組成的文件夾的共享。 //如果發(fā)過來的文件是 0KB 的 會收不到 所以 Delete fs:=(targetname,fmcreate)。 targetname:=strpas(localroot)+msg。 //接收文件名 ldir:=split(msg,39。 end。 move(tmpfn[1],filename^,length(tmpfn))。 //清空內(nèi)存 move(myname[1],hostname^,length(myName))。TRANSFILE39。 fs:tfilestream。 2)服務(wù)器端響應(yīng)功能: 當服務(wù)器收到來自客戶端文件傳輸連接請求后,對其進行連接響應(yīng)建立連接。)。 //運行線程 var socket:tidtcpclient。此函數(shù)的源代碼如下 : 文 件 流 建 立 后 由 inherited create(false) 提 示 系 統(tǒng) 自 動 執(zhí) 行。 exit。 //發(fā)送按鈕 文件傳輸 事件 var filename:string。 1)客戶端連接并發(fā)送功能 : 客戶端點擊文件發(fā)送按鈕以后,系統(tǒng)首先判斷是否選擇文件接受者。 End。 End。//執(zhí)行失敗 //獲取整個網(wǎng)絡(luò)中的網(wǎng)絡(luò)類型信息 Count := $FFFFFFFF。 i,j : SmallInt。 if mynamerecvname then deleteuser(recvname)。 recvworkgroup:=copy(msg,headlen+namelen+1,workglen)。 recvip:=copy(msg,headlen+portlen+1,iplen)。 (recvip,recvport,minfobuf,sizeof(minfobuf))。 adduser(recvname,recvworkgroup,recvip,recvport)。LOGIN39。 recvport:integer。//執(zhí)行失敗 Result := True。 For Ind := 0 to Count 1 do//列舉工作組的計算機名稱 Begin tmpStr:=。 If Res NO_ERROR Then Exit。 Temp : TNetResourceArray。 第 9 頁 共 26頁 系統(tǒng)功能模塊設(shè)計 獲取用戶信息 本部分主要是顯示用戶列表中在線用戶的主機名,主機的 IP 地址以及工作組名三部分,代碼分別進行介紹如下: 獲取局域網(wǎng)內(nèi)用戶名的源代碼如下: Function ( GroupName : string。%6s%255s39。,name,workgroup])。 function (ip,name,workgroup:string。 myinfo:=format(39。 clist:=。 //本機信息 pmyname:array[0..1023]of char。 設(shè)置的界面如下圖: 客戶端主機 服務(wù)器端主機 套節(jié)字連接請求 連接響應(yīng) 寫入文件流 接收文件流 并保存 斷開連接 斷開連接響 應(yīng) LIANJIETCP 第 7 頁 共 26頁 圖 3 基于局域網(wǎng)的文件傳輸系統(tǒng)界面 用戶信息 用戶列表建立以后,將局域網(wǎng)內(nèi)所有在線用戶的主機名,主機 IP 地址以及工作組名顯示于列表中。 4 系統(tǒng)設(shè)計 系統(tǒng)總體架構(gòu) 本系統(tǒng)的設(shè)計過程主要分為兩部分: 第一部分:系統(tǒng)界面的設(shè)計以及獲取局域網(wǎng)內(nèi)所有在線用戶的主機名, IP地址以及工作組名。系統(tǒng)應(yīng)為用戶提供 Windows 所一貫堅持的非常友好、操作簡單的用戶界面。 現(xiàn)行系統(tǒng)存在的主要問題分析 針對企業(yè)來說,提高工作效率是企業(yè)的一個重心;降低成本是企業(yè)贏取最大利益的重要方式;保證信息安全卻是可能影響企業(yè)生死存亡的關(guān)鍵。 服務(wù)器使用 Socket 監(jiān)聽指定的端口,端口可以隨意指定,等待客戶連接請求,客戶連接后,會話產(chǎn)生;在完成會話后,關(guān)閉連接。 Delphi 提供了各種開發(fā)工具 ,包括集成環(huán)境、圖像編輯( Image Editor),以及各種開發(fā) 可視化軟件 的應(yīng)用程序,如 DesktopDataBase Expert 等。由于沒能提供用戶真正期望的開放環(huán)境, C/S 結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng) 百 臺電腦以上局域網(wǎng)用戶同時使用。采用 TCP/IP詳解 的原因: 第一, 局域網(wǎng)內(nèi)主機之間的是依靠 IP地址進行標識。 第 2 頁 共 26頁 2 理論基礎(chǔ) TCP/IP 點對點協(xié)議技術(shù) 系統(tǒng)的文件傳輸功能主要依賴于建立客戶端與服務(wù)器之間點對點的的連接后實現(xiàn)。文件傳輸 系統(tǒng)由于比較復(fù)雜,可變因素較多, 安全性低 ,因此發(fā)展還不成熟。 在計算機與網(wǎng)絡(luò)迅速發(fā)展的今天,借助于網(wǎng)絡(luò)進行信息資 源交流給人們帶來了極大的方便。s routine work needs to draw support from the file transfer to plete. But the majority file transfer function all needs to draw support moves hardware equipment or the Inter and so in the floppy disk server can realize This gave these to have the largescale internal work user to create many problems, like the waste fund, the waste work resources, the viral invasion, reduced the working efficiency and so on. In order to facilitate in the local area work main engine resources sharing, needs to develop one based on the local area work file transfer tool, realizes the document exchange in internal work. The design and implementation of file transfer system base on LAN uses Delphi development tool,C/S mode through the establishment of Socket after connecting LAN users fast, accurate, the pointtopoint security files and folders transmission functions. The system can contribute to LAN users to share file resources to meet the exchange of information between mainframe, ensure that the filets and folders transmission security, effectively improving efficiency. The design is divided into five major module altogether, including: First, introduction selected topic background and significance and domestic and foreign research present situation。很多情況下,人們的日常工作需要借助文件傳輸來完成。本系統(tǒng)能夠促進局域網(wǎng)內(nèi)用戶之間的文件資源共享,滿足主機之間信息交流,確保文件及文件夾傳輸安全性,有效地提高工作效率。 Network munication module。在這種形勢下,開發(fā)一個功能簡單而實用,能在 Windows 操作系統(tǒng)中運行,并且具有可移植性的局域網(wǎng)內(nèi)文件傳輸工具勢在必行。特別是對如今較大系統(tǒng)研發(fā)的模塊分工合作得到了絕對保密性,從而使各項工作有計劃、更科學(xué)的進行及順利完成,使企業(yè)的辦事效率得到顯著提高。 TCP協(xié)議和 IP協(xié)議是保證數(shù)據(jù)完整傳輸?shù)膬蓚€基本的重要協(xié)議。它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將 信息交互 任務(wù)合理分配到 Client 端和 Server 端來實現(xiàn),降低了系統(tǒng) 文件傳輸過程中的 開銷。 Delphi 具有 很多 特性:基于窗體和面向?qū)ο蟮姆椒?,高速的編譯器,與 Windows 編程緊密結(jié)合,強大而成熟的組件技術(shù)。 所謂 Socket 通常也稱作 套接字 ,用于描述 IP 地址和端口, socket 類表現(xiàn)了客戶端套接字,它是屬于兩臺計算機的兩個 TCP 通訊端口之間的通訊通道。 如果通過局域網(wǎng)內(nèi)主機之間復(fù)制粘貼來實現(xiàn)文件資源共享,將浪費大量的網(wǎng)絡(luò)帶寬,極大程度上影響了網(wǎng)內(nèi)用戶的工作效率,甚至導(dǎo)致用戶不能正常工作;如果依靠移動磁盤實現(xiàn)文件的共享,將花費大量的金錢,而文件較大移動磁盤容量不足的情況下會令人極為頭疼,何況移動磁盤是病毒傳播的重要途徑;如果通過 Inter 郵件方式實現(xiàn),用戶需要接入 Inter 服務(wù)器, 這種方式對遠程服務(wù)器有非常大的依賴性, 即使 1KB 的文件都要經(jīng)歷極度繁瑣的路徑, 不能徹底實現(xiàn)點對點的即時交流, 文件較大的情況下就不言而喻了 。對傳輸文件過程中的文件的載入設(shè)置都是非常簡單可行,比如:如果用戶忘記選擇文件接收者的時 候系統(tǒng)會自動提示“請選擇接收用戶”要求用戶 第 5 頁 共 26頁 選擇主機而不導(dǎo)致錯誤出現(xiàn)而引發(fā)的不便,這樣就大大提高工作效率。 綜合上述,本設(shè)計 在 Windows XP 操作系統(tǒng)下 , 以中文版 Delphi7 為開發(fā)工具 ,以 C/S 為系統(tǒng)功能結(jié)構(gòu),基于點對點的 TCP/IP 協(xié)議理論,通過 Socket 套節(jié)字 連接客戶端與服務(wù)器實現(xiàn)文件及文件夾傳輸。通信雙方是通過三次握手建立 Socket 連接,實現(xiàn)文件傳輸,最后關(guān)閉套節(jié)字連接。其部分的源代碼分別如下: 第 8 頁 共 26頁 procedure (Sender: TObject)。 //獲取本機名 gethostname(pmyname,sizeof(pmyname))。 finally 。 strpcopy(myinfobuf,myinfo)。%6s%255s%255s39。 //用戶離線 以 LOGINOUT 為頭信息 var mylogoutbuf:array[0..1023]of char。 (mylogoutbuf,9000)。 Count,BufSize,Res : DWord。//類型為服務(wù)器(工作組 ) / := RESOURCEUSAGE_CO