【正文】
( 4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 [7] (美 )Paul 6 應(yīng)用開發(fā)指南 [M].北京:清華大學(xué)出版社 ,。從設(shè)計分析到設(shè)計編寫直到具體實現(xiàn),在學(xué)校所學(xué)的理論知識對我有很大的幫助,我也發(fā)現(xiàn)了我的很多不足的地方。 設(shè)計測試的是同在一個局域網(wǎng)中,先將編譯好的程序復(fù)制到內(nèi)部網(wǎng)絡(luò)上的沒臺計算機上面,然后都將設(shè)計的系統(tǒng)打開運行,這是觀察是否能顯示所有的在線用戶的信息,如果了防火墻之類的軟件正在運行的話,很可能不能正常顯示工作組、 IP 等信息,所以最好是關(guān)閉防火墻。 closefile(f)。+datetostr(now)+timetostr(now))。)。 closefile(F)。 begin if then begin :=。 if then (myworkgroup)。,[39。 if j= then 第 17 頁 共 25 頁 IP 地址進行顯示;由工作組進行顯示,最后連接到表 Label2 中去。 if then (revip)。 end。 minfo:=format(39。 strpcopy(chatinfobuf,chatinfo)。 end。 if then (recvworkgroup)。 var minfobuf:array[0..1023]of char。 RECVNAME:=COPY(msg,headlen+1,namelen)。 recvport:=9000。 //處理握手信息 添加對方 ip 返回對方 ip if head=39。 第 14 頁 共 25 頁 局域網(wǎng)內(nèi)實現(xiàn)單播功能 在本 設(shè)計中單播發(fā)送的按鈕為 BitBtn2,主要是通過 IdUDPServer 和IdUDPClient 組件來編寫的,由 語句來發(fā)送的,主要是對局域網(wǎng)內(nèi)部的同一工作組用戶發(fā)送信息。REVLOG39。login recv39。 msg:=Trim(String(Pchar(Readbuf[0])))。 AData: TStream。 Res := WNetCloseEnum(lphEnum)。 //緩沖區(qū)大小設(shè)置為 8K GetMem(Buf, BufSize)。 p : TNetResourceArray。//關(guān)閉一次列舉 If Res NO_ERROR then exit。 For Ind := 0 to Count 1 do //列舉工作組的計算機名稱 Begin //獲取工作組的計算機名稱 tmpStr:=。 If Res NO_ERROR then Exit。 TmpStr:String。List : TStringList) : Boolean。要使用 Inter Direct 實現(xiàn)的組件,只需使用Send 向給定的 IP 地址和端口號廣播一個命令字符串。 圖 8 歷史記錄 系統(tǒng)功能模塊設(shè)計 網(wǎng)絡(luò)組件 UDP 協(xié)議由 TCP 協(xié)議衍生而來。這種系統(tǒng)主要是為了方便了大中型企業(yè)在內(nèi)部即時通訊要求,從而進一步提高 工作效率,增加企業(yè)的效益 。這些即時通訊業(yè)務(wù)屬于基礎(chǔ)語音業(yè)務(wù)外的數(shù)據(jù)增值類業(yè)務(wù),從范疇來講屬于“消息類”業(yè)務(wù),本質(zhì)是完成對“文字、聲音、圖像”信息的傳遞。例如, MAC 地址,格式為 1xFFFFFFFF 是一種廣播地址; IP 地址 是通用廣播地址。有些路由選擇協(xié)議,如 RIP,主要用于支持網(wǎng)絡(luò)設(shè)備 “Advertise” 網(wǎng)絡(luò)服務(wù)。 而 IPv6 支持單播( Unicast)、組播( Multicast)和任意播( Anycast)三種類型。單播流量地址唯一。 UDP 協(xié)議適用端口分辨運行在同一臺設(shè)備上的多個應(yīng)用程序。 2 理論基礎(chǔ) C/S軟件架構(gòu)技術(shù) C/S( Client/Server)結(jié)構(gòu),即大家熟知的客戶機和服務(wù)器結(jié)構(gòu)。盡管第一代、第二代以及第三代即時通訊軟件的信息傳遞主要在互聯(lián)網(wǎng)范圍內(nèi),但各個階段都可以看到即時通訊行業(yè)在跨網(wǎng)通訊領(lǐng)域中的應(yīng)用,在移動即時信息進一步深化應(yīng)用,跨網(wǎng)語音交流進一步加強,跨網(wǎng)通訊領(lǐng)域的進一步拓寬,都意味著真正意義的跨網(wǎng)即時通訊已發(fā)展成型。因此出現(xiàn)了 、 UC 等聊天工具,然而 、 UC 等聊天工具雖然方便、實用,但是,娛樂功能太多,有很多吸引人的娛樂功能,從一定程度上來說,是一種娛樂工具,不能作為用于即時通訊、文件共享的專用工具。 the fourth part is the system structure and the module design。由于互連網(wǎng)上的網(wǎng)絡(luò)通訊工具給企業(yè)內(nèi)部信息交流帶來了不便,所以為了方便 內(nèi)部網(wǎng)絡(luò)的用戶之間的溝通 ,需要開發(fā)一個基于局域網(wǎng)的信息收發(fā)系統(tǒng)的即時通訊工具,實現(xiàn)在 內(nèi)部網(wǎng)絡(luò) 中進行信息的交流。s munication, needs to develop one based on the local area work information receiving and dispatching system instant message facilities, realizes carries on the information in the internal work the exchange. This topic design mainly aims at the local area work munication to develop the design, uses is the C/S structure, realizes the unicast, the broadcast as well as the online user demonstration and the examination historic record function using the Delphi programming tool, and drew support from some work munication module, the success realization on the local area work instant message. The present paper altogether divides into six parts. The first part is the topic background and the research significance。 Broadcast。因此,這個軟件是極具適應(yīng)性和實用性的即時通訊軟件。 本課題研究的意義 隨著現(xiàn)代通訊技術(shù)不斷的發(fā)展,即時通訊技術(shù)也有飛速的發(fā)展,它是一種使人們能在網(wǎng)上識別在線用戶并與他們實時交換消息的技術(shù),被很多人稱為電子郵件發(fā)明以來最酷的在線通訊方式。由于沒能提供用戶真正期望的開放環(huán)境, C/S結(jié)構(gòu)的軟件需要針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,加之產(chǎn)品的更新?lián)Q代十分快,已經(jīng)很難適應(yīng)百臺電腦以上局域網(wǎng)用戶同時使用。由于 UDP 比較簡單, UDP 頭包含很少的字節(jié),比 TCP 負載消耗少 ,所以 UDP 適用于不需要 TCP 可靠機制的情形,比如,當高層協(xié)議或應(yīng)用程序提供錯誤和流控制功能的時候。所有 LANs(如以太網(wǎng))和 IP 網(wǎng)絡(luò)都支持單播傳輸模式,并且大多數(shù)用戶都了解標準單播應(yīng)用程序,如: 、 第 4 頁 共 25 頁 smtp、 ftp 和 tel ― 都作為 TCP 傳輸協(xié)議。 IPv6 支持單播( Unicast)、組播( Multicast)以及任意 播( Anycast)三種類型, IPv6 中沒有關(guān)于廣播( Broadcast)的具體劃分,而是作為組播的一個典型。因此,共享以太網(wǎng)中的所有節(jié)點都屬于同一廣播域。 圖 3 廣播 物理結(jié)構(gòu)圖 3 需求分析 現(xiàn)行業(yè)務(wù)系統(tǒng)描述 隨著計算機網(wǎng)絡(luò)日新月異的發(fā)展,人們的交流方式越來越多,傳統(tǒng)的交流方式如:信件、電報、電話等已經(jīng)難以滿足人們的交流要求,在互聯(lián)網(wǎng)上即時的和好友取得聯(lián)系,已經(jīng)成為當今社會人們主流的聯(lián) 系方式。為企業(yè)中的信息交流帶來了很大的安全性問題。 系統(tǒng)主界面 (服務(wù)器 /客戶) 單 播 發(fā) 送 廣 播 發(fā) 送 接 收 信 息 顯示用戶信息 信 息 寫 入 查看歷史記錄 工 作 組 IP 地 址 用 戶 名 第 8 頁 共 25 頁 圖 5 主界面 當有信息傳過來時將自動彈出一個信息接收的窗體,窗體包括查看按鈕和關(guān)閉按鈕還有一個顯示對方用戶的區(qū)域,他們分別是用來打開并查看信息或是不想查看而關(guān)閉的作用。為連接到 UDP 服務(wù)器,需要一個 TIdUDPClient 組件。當有用戶打開本系統(tǒng)的時候?qū)蚓钟蚓W(wǎng)中的所有用戶發(fā)送一個握手信息來獲取網(wǎng)絡(luò)中的在線用戶信息并添加到列表中顯示出來,同時也把自己的網(wǎng)絡(luò)資源 信息發(fā)送給對方,使自己被添加到其他用戶的列表中。 lphEnum: THandle。//類型為服務(wù)器(工作組) := RESOURCEUSAGE_CONTAINER。 If Res = ERROR_NO_MORE_ITEMS then break。 end。 Buf : Pointer。 if Res NO_ERROR then break。//取得一個工作組的名稱 Inc(P)。 。 f:textfile。 then begin recvip:=。 handdata(recvip,myname,myworkgroup,recvport)。 recvip:=copy(msg,headlen+portlen+1,iplen)。 chatinfobuf:array[0..2030]of char。 RECVNAME:=COPY(msg,headlen+1,namelen)。then Begin // (39。 end。 for i:=0 to do begin if [i].CaptionRECVNAME then inc(j,1)。提 示 39。,[39。 if then (recvip)。 //返回對方 IP port strpcopy(minfobuf,minfo)。 :=revname。 var tempitem:tlistitem。 f:textfile。 end。 :=I