freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi--基于局域網(wǎng)的信息收發(fā)系統(tǒng)的設計與實現(xiàn)(編輯修改稿)

2024-12-12 02:36 本頁面
 

【文章內(nèi)容簡介】 蟲等。為企業(yè)中的信息交流帶來了很大的安全性問題。 提出解決方案 根據(jù)企業(yè)在內(nèi)部網(wǎng)絡上信息交流的需求, 所以本課題就主要針對內(nèi)部的網(wǎng)絡來設計這樣的一個即時通訊系統(tǒng),本系統(tǒng)是 在基于局域網(wǎng)的在 IM 客戶端和 IM服務器之間通訊采用的 UDP 協(xié)議和 C/S 軟件構架技術上開發(fā)的通訊工具,它在 近程的即時通訊時徹底的脫離了遠程的服務器,不通過遠程服務器來完成實現(xiàn)通訊,避免了和遠程服務器連接時過 多的浪費網(wǎng)絡資源。并且避免了服務器忙或與服務器無法連接時浪費過多時間用于和服務器建立連接,同時也為內(nèi)網(wǎng)服務增強了許多的安全性,徹底的將通訊工具從互連網(wǎng)上搬到內(nèi)網(wǎng)中來,這樣一來就不會受到來自互連網(wǎng)的攻擊了。這種系統(tǒng)主要是為了方便了大中型企業(yè)在內(nèi)部即時通訊要求,從而進一步提高 工作效率,增加企業(yè)的效益 。 4 系統(tǒng)設計 系統(tǒng)總體架構 本系統(tǒng)主要是采用 C/S 結(jié)構,并且每個客戶端也是作為服務器端的,當系統(tǒng)發(fā)送信息給局域網(wǎng)的用戶,主要由單播模塊和廣播模塊來實現(xiàn),而其中的單播模塊和用戶信息模塊是具有依賴性的,在接收信息的時候又 有兩個模塊來完成,一是信息接收的模塊,另一個是信息查看的模塊。 由此可以看出本系統(tǒng)主要分為兩大部分模塊:發(fā)送模塊和接收模塊。發(fā)送模塊:單播模塊,廣播模塊,用戶信息模塊,信息記錄模塊接收模塊:接收信息模塊,查看信息模塊 有了以上的了解了那讓我們來看看系統(tǒng)的架構圖: 第 7 頁 共 25 頁 圖 4 系統(tǒng)架構圖 界面設計 為了方便用戶的操作,我采用比較簡單的界面設計,主界面包括廣播按鈕、發(fā)送按鈕、刷新按鈕、在線用戶顯示框、信息輸入窗體。其中廣 播按鈕是將信息窗體中的內(nèi)容發(fā)送到所有的用戶;發(fā)送按鈕是將信息窗體中的內(nèi)容發(fā)送到指定的用戶;在線用戶顯示框中選取指定的用戶和查看用戶的信息;刷新是重載用戶列表。 系統(tǒng)主界面 (服務器 /客戶) 單 播 發(fā) 送 廣 播 發(fā) 送 接 收 信 息 顯示用戶信息 信 息 寫 入 查看歷史記錄 工 作 組 IP 地 址 用 戶 名 第 8 頁 共 25 頁 圖 5 主界面 當有信息傳過來時將自動彈出一個信息接收的窗體,窗體包括查看按鈕和關閉按鈕還有一個顯示對方用戶的區(qū)域,他們分別是用來打開并查看信息或是不想查看而關閉的作用。 圖 6 信息接收界面 如過你在圖 6 中點擊了查看按鈕,那么將會彈到顯示信息查看的窗體上,在文本區(qū)則會顯示對方傳送過來的信息內(nèi)容,在查看了之后有個關閉按鈕,用來結(jié)束對話 框,便可以回到圖 5 的界面了。 第 9 頁 共 25 頁 圖 7 信息查看界面 在歷史記錄的窗體中點擊記錄文件按鈕來選擇保存的路徑,將會自動生成一個文本文件來對通訊記錄進行保存。 圖 8 歷史記錄 系統(tǒng)功能模塊設計 網(wǎng)絡組件 UDP 協(xié)議由 TCP 協(xié)議衍生而來。 TCP 用于確保點對點的連接,而 UDP 并不保證發(fā)送的數(shù)據(jù)一定到達,也不表明數(shù)據(jù)報的傳輸成功或失敗。 本系統(tǒng)設計使用的是 TIdUDPClient 和 TIdUDPServer 兩個用戶數(shù)據(jù)報( UDP)組件,首先創(chuàng)建 Delphi 工程。然后向工程組再添加一個工程。把一個工程作為客戶,另一個作 為服務器。為連接到 UDP 服務器,需要一個 TIdUDPClient 組件。用來表示服務器的 IP地址和端口號。由于 UDP 是無連接的,因此在 UDP 的接口方法中不包括 Connect 方法。要使用 Inter Direct 實現(xiàn)的組件,只需使用Send 向給定的 IP 地址和端口號廣播一個命令字符串。 其中我為 IP地址和端口號的設置分別為 和 9000。服務器是作為應用程序?qū)崿F(xiàn)的,它對客戶程序發(fā)出的一個簡單的命令集進行響應。為實現(xiàn)服務 第 10 頁 共 25 頁 器,程序?qū)⒈O(jiān)聽 DefaultPort 端口上的廣播,并將 設置為True。 下面是我對 TIdUDPClient 和 TIdUDPServer 組件的設置圖: 圖 9 TIdUDPClient組件設置 圖 10 TIdUDPServer組件設置 用戶信息顯示功能 為了方便用戶選取單個用戶進行信息發(fā)送和查看在線用戶的信息,所以設計了一個 ListView 來進行顯示如圖 5,在 ListView 中包括了用戶名、工作組、 IP地址。當有用戶打開本系統(tǒng)的時候?qū)蚓钟蚓W(wǎng)中的所有用戶發(fā)送一個握手信息來獲取網(wǎng)絡中的在線用戶信息并添加到列表中顯示出來,同時也把自己的網(wǎng)絡資源 信息發(fā)送給對方,使自己被添加到其他用戶的列表中。 其中分別要對網(wǎng)絡中的所有的用戶名、工作組、 IP 地址進行獲取,下面來看一下對于獲取這些網(wǎng)絡資源的代碼部分。 1) 用戶名獲取代碼如下: Function ( GroupName : string。List : TStringList) : Boolean。 type TNetResourceArray = ^TNetResource。 //網(wǎng)絡類型的數(shù)組 Var NetResource: TNetResource。 Buf: Pointer。 Count,BufSize,Res: DWord。 lphEnum: THandle。 Ind: Integer。 Temp: TNetResourceArray。 TmpStr:String。 第 11 頁 共 25 頁 Begin Result := False。 FillChar(NetResource, SizeOf(NetResource), 0)。 //初始化網(wǎng)絡層次信息 := @GroupName[1]。 //指定工作組名稱 := RESOURCEDISPLAYTYPE_SERVER。//類型為服務器(工作組) := RESOURCEUSAGE_CONTAINER。 //已連接機器 := RESOURCETYPE_DISK。 //列舉文件資源信息 //獲取指定工作組的網(wǎng)絡資源句柄 Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum)。 If Res NO_ERROR then Exit。 //執(zhí)行失敗 While True Do//列舉指定工作組的網(wǎng)絡資源 Begin Count := $FFFFFFFF。 //不限資源數(shù)目 BufSize := 8192。 //緩沖區(qū)大小設置為 8K GetMem(Buf, BufSize)。 //申請內(nèi)存,用于獲 取工作組信息 //獲取計算機名稱 Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize)。 If Res = ERROR_NO_MORE_ITEMS then break。 //資源列舉完畢 If (Res NO_ERROR) then Exit。 //執(zhí)行失敗 Temp := TNetResourceArray(Buf)。 For Ind := 0 to Count 1 do //列舉工作組的計算機名稱 Begin //獲取工作組的計算機名稱 tmpStr:=。 Delete(tmpstr,1,2)。 (tmpStr)。 (tmpstr)。 Inc(Temp)。 end。 end。 Res := WNetCloseEnum(lphEnum)。//關閉一次列舉 If Res NO_ERROR then exit。//執(zhí)行失敗 Result := True。 FreeMem(Buf)。 end。 第 12 頁 共 25 頁 2) 工作組獲取代碼如下: var //顯示所有工作組的名稱 NetResource : TNetResource。 Buf : Pointer。 Count,BufSize,Res : DWORD。 //一個無符號的,占四個字節(jié)( 32)的整型 //句柄類型 lphEnum : THandle。 p : TNetResourceArray。i,j : SmallInt。 NetworkTypeList : TList。 //返回局域網(wǎng)中的工作組名稱 ………… //列出一個網(wǎng)絡類型中的所有工作組名稱 begin NetResource := TNetResource([J]^)。//網(wǎng)絡類型信息 //獲取某個網(wǎng)絡類型的文件資源的句柄, NetResource為網(wǎng)絡類型信息, lphEnum為返回名柄 Res:=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum)。 if Res NO_ERROR then break。//執(zhí)行失敗 while true do//列舉一個網(wǎng)絡類型的所有工作組的信息 begin Count := $FFFFFFFF。 //不限資源數(shù)目 BufSize := 8192。 //緩沖區(qū)大小設置為 8K GetMem(Buf, BufSize)。 //申請內(nèi)存,用于獲取工作組信息 //獲取一個網(wǎng)絡類型的文件資源信息 Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize)。 if ( Res = ERROR_NO_MORE_ITEMS ) //資源列舉完畢 or (Res NO_ERROR) /
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1