【正文】
最后還要特別感謝審稿老師在百忙之中抽出寶貴時間審閱本論文。也可以做計時器用,在連了很長時間仍然沒連接上的時候,自動斷開連接,提示用戶重新連接,這個時間量由用戶在控件的interval屬性設置。千萬不要忽略程序的正確書寫格式,這對程序的調(diào)試及維護方面都用極為重要的作用。如果要使本系統(tǒng)成為一個實際應用系統(tǒng)并在局域網(wǎng)上實際應用,除了完成客戶端的功能外,我認為還應做以下的完善和開發(fā)工作:(1) 一步完善底層通訊協(xié)議,使其能夠更好的處理數(shù)據(jù)的發(fā)送和接收。(2) 陳述了客戶端/服務器程序的設計原理和過程(3) 根據(jù)系統(tǒng)需求,進行整個系統(tǒng)的各個部分的詳細設計。 password amp。相關(guān)代碼如下:Private Sub Winsock1_Close(Index As Integer)Dim I As IntegerWinsock1(Index).ClosePrivate Sub Winsock1_Close()If closeflag Then 39。發(fā)送一個數(shù)據(jù),等待響應信息的回來,客戶端是通過服務器回復信息的頭命令,判定消息類型。接收 nowconnext(I) = True 39。:注冊窗口和個人信息窗口也顯示在下面了,通過注冊界面可以自定義個人信息,完成注冊并且用自己隨機獲取的ID號進行登陸,登陸后可以通過雙擊在線名單的某一行,查看對應的人員信息。qlIf = True Then = False = 0End IfEnd SubPrivate Sub Option2_Click() 39。 Time amp。鍵值位置:HKEY_CURRENT_USER\Software\VB and VBA Program Settings\即時通訊軟件服務器\server: 更改密碼的界面圖 發(fā)布通知發(fā)布通告是在菜單欄的工具里,點擊即可發(fā)布你所輸入的信息。 str DoEventsLoopClose 1If t = Then Text1 = 這一天沒有任何日志信息 Else Text1 = tExit Sub30:Close 1Text1 = 這一天的日志信息不存在,或文件已丟失End SubPrivate Sub Command3_Click()On Error GoTo 30Dim t, str As Stringc1 = FalseOpen amp。 人 amp。 vbCrLf = 當前 amp。 \bat\ strDestination = amp。 月 amp。這里點擊的是“no Exit Sub Else strSource = amp。關(guān)鍵程序代碼所示:FileNames = Dir( amp。Access具有較獨特的優(yōu)勢提供了更強大的數(shù)據(jù)組織,用戶管理,查詢檢索、數(shù)據(jù)排序及數(shù)據(jù)打印等功能。為了完成連接,可以在 ConnectionRequest 事件中調(diào)用Accept 方法。Winsock控件可以使用兩種協(xié)議:TCP協(xié)議和 UDP協(xié)議。它可以綜合用戶、領(lǐng)導和原型開發(fā)人員的各方需求[10]。包括確定需求和開發(fā)工作模型,例如屏幕格式、功能菜單、報表格式以及對關(guān)鍵數(shù)據(jù)和功能的說明等。面向?qū)ο蠓ǎ阂灶?,類的繼承,聚集等概念描述客觀事物以及聯(lián)系。 系統(tǒng)功能需求圖 這個即時通訊軟件系統(tǒng)包括服務器端和客戶端,服務器端有聊天記錄、系統(tǒng)設置、發(fā)布通告、數(shù)據(jù)庫備份還原初始化、置頂?shù)墓δ?,客戶端要求有登陸、注冊、聊天和修改查看個人信息的功能,系統(tǒng)功能的需求圖如下: 系統(tǒng)功能需求圖 開發(fā)方法介紹目前比較成熟的信息系統(tǒng)開發(fā)方法有:生命周期法、原型法、面向?qū)ο蠓ǖ?。?) 可以同時發(fā)送一個消息給所有人。無連接客戶程序使用數(shù)據(jù)報發(fā)送網(wǎng)絡服務請求,它不建立點到點連接。也就是說,程序告訴Socket執(zhí)行體使用哪一個協(xié)議端口進行數(shù)據(jù)傳送。但是,也可以設計同時完成這兩種功能的程序,例如,一些服務器程序如果不能完成一個服務請求時,它將轉(zhuǎn)而充當客戶程序,向其它服務器程序請求信息。 客戶機/服務器模型客戶機/服務器(C/S)模型是一種網(wǎng)絡模型,它并不是定義了網(wǎng)絡的層次結(jié)構(gòu),而是描述了一種網(wǎng)絡程序運行的方式。成千的PC機應用程序使用此方案。IP數(shù)據(jù)報保存目的和源IP地址,同樣傳輸協(xié)議也保存源和目的端口號。相比之下,傳輸?shù)酵荒康牡氐亩鄠€數(shù)據(jù)報可能不會按發(fā)送順序到達。協(xié)議不管要求發(fā)送或接收數(shù)據(jù)的長度和傳送數(shù)目,只是將數(shù)據(jù)看作一個簡單的字節(jié)串流。相比之下,不可靠協(xié)議不能確保數(shù)據(jù)正確傳輸??煽總鬏敯◣讉€特征。這個協(xié)議組包括幾種工作在不同層次上的網(wǎng)絡協(xié)議,UDP用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol),提供給用戶進程的無連接協(xié)議,也負責在應用程序之間無連接傳遞數(shù)據(jù),但不執(zhí)行正確性檢查。由于這些源將 XML 用作自己的數(shù)據(jù)交換格式,因此可以在 Access 中創(chuàng)建一系列聚合查詢,以將該數(shù)據(jù)拉入視圖中,然后利用這些視圖設計窗體和報表。自從1992年開始銷售以來,Access 已經(jīng)賣出了超過6000萬份,現(xiàn)在它已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫管理系統(tǒng)。OLE技術(shù)是Microsoft公司對象技術(shù)的戰(zhàn)略,它把多個應用程序合為一體,將每個應用程序看作是一個對象進行鏈接和嵌入,是一種應用程序一體化的技術(shù)。Visual Basic具有強大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,同時具有功能強大且使用靈活的調(diào)試器和編譯器。有時候,這種編程編譯修改的操作需要反復多次,大大影響了軟件開發(fā)效率。這個基于socket技術(shù)的即時通訊軟件是基于Visual Basic平臺和Access數(shù)據(jù)庫設計的。首先,在局域網(wǎng)里的網(wǎng)上鄰居里,只能看到機器名,不清楚對方是誰,也不知道對方機器里有什么資源可以共享,而且當局域網(wǎng)內(nèi)的機器很多時,這種方式更加麻煩。這個軟件包括服務器程序和客戶端程序,服務器包括聊天信息即時轉(zhuǎn)發(fā),發(fā)送通知,數(shù)據(jù)庫備份還原及數(shù)據(jù)庫的初始化等功能。現(xiàn)在,網(wǎng)絡上的在線服務系統(tǒng)多種多樣,它們已經(jīng)深深的影響并改變了人們的聯(lián)系和交流方式,使得人們可以在千里之遙進行即時性的通訊。于是我就想到做一個在局域網(wǎng)里的多功能通訊軟件,在局域網(wǎng)里,我們可以通過它,實現(xiàn)在局域網(wǎng)里聯(lián)絡,消息的發(fā)布等。s favors, its application market is extremely broad.Nowadays, a lot of enterprises, institutions and schools have set up their own LAN. So I thought of making a different munications software. We can achieve through it, the contact in LAN, news release, etc. In the school campus, the establishment of the software can be conveniently between teachers and students, between the contact between teacher and students. We need not get on the Internet. It can save resources. In the school, this software c can make students convenient links. Students can discuss problems with other students and teachers through it. This software can maximize existing network resources, greatly improving work efficiency. The software includes server program and client program. Server includes realtime chat message transmitting, database backup notification, and database of initialization functions. The client has login, registration, modify, chat, personal information functions.Keywords: VB,Winsock,Access, Instant Messenger目 錄 摘 要 IABSTRACT II第1章 緒論 1 1 1 1第2章 開發(fā)工具介紹 2 VB簡介 2 Access簡介 4第3章 網(wǎng)絡通訊程序的設計原理 5 TCP/IP協(xié)議 5 客戶機/服務器模型 6第4章 需求分析及開發(fā)方法 8 需求分析 8 系統(tǒng)功能模塊 8 系統(tǒng)功能需求圖 8 開發(fā)方法介紹 9第5章 總體設計 11 設計思想 11 關(guān)鍵通信技術(shù)-Winsock 11第6章 詳細設計 13 數(shù)據(jù)庫設計 13 系統(tǒng)數(shù)據(jù)流程圖 13 數(shù)據(jù)庫邏輯結(jié)構(gòu)設計 13 各主要窗體及核心代碼介紹 14 密碼模塊 14 數(shù)據(jù)初始化模塊 15 數(shù)據(jù)備份和還原模塊 17 查看服務器信息 20 保存記錄以及查看記錄 20 更改管理員密碼 23 發(fā)布通知 24 客戶界面 25 底層通訊設計 30結(jié) 論 33參考文獻 35附 錄 36致 謝 3710長沙學院畢業(yè)設計(論文)第1章 緒論在網(wǎng)絡無所不在的今天,在Internet上,有、MSN等網(wǎng)上尋呼軟件,極大程度上方便了處于世界各地的友人之間的相互聯(lián)系,也使世界好像一下子縮小了,不管你在哪里,只要你上了網(wǎng),打開這些軟件,就可以給你的朋友發(fā)信息,不管對方是否也同時在線,只要知道他的號碼。但是有服務器的通訊軟件,可以保存用戶的個人信息或介紹,供人查看。它之所以受到人們的青睞的主要原因有:Windows是當今主流操作系統(tǒng),而Visual Basic是開發(fā)Windows應用程序最簡單易學的語言之一;Visual Basic引入了面向?qū)ο蠛褪录?qū)動的程序設計思想,大大縮短了應用軟件的開發(fā)周期;Microsoft(微軟)公司十分重視Visual Basic的功能擴充,不斷地把最新技術(shù)運用到Visual Basic中,使之可以完成幾乎所有Windows應用程序的開發(fā)任務;已有越來越多的優(yōu)秀軟件支持用Visual Basic進行二次開發(fā)[2]。在一般的面向?qū)ο蟪绦蛟O計語言中,對象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而Visual Basic則是應用面向?qū)ο蟮某绦蛟O計方法(OOP),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應有的屬性,使對象成為實在的東西。例如,命令按鈕是一個對象,當用戶單擊該按鈕時,將產(chǎn)生一個“單擊”(CLICK)事件,而在產(chǎn)生該事件時將執(zhí)行一段程序,用來實現(xiàn)指定的操作。當原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。 Access簡介Access是Office辦公套件中一個極為重要的組成部分。利用熟悉的 Access 用戶界面,您可以方便地利用 Jet 或 SQL Server 結(jié)構(gòu)和數(shù)據(jù)創(chuàng)建 XML 數(shù)據(jù)或架構(gòu)文檔。IP互連協(xié)議(Internet Protocol),負責主機之間的傳輸數(shù)據(jù)。TCP/IP網(wǎng)絡環(huán)境下的應用程序設計是通過網(wǎng)絡系統(tǒng)編程界面Socket實現(xiàn)的,Socket提供應用程序與系統(tǒng)內(nèi)核之間的網(wǎng)絡編程接口。接收計算機重新計算校驗和,與收到的校驗和進行比較。即使發(fā)送地址是正確的,也不能保證郵遞系統(tǒng)不丟失你的信件[8]。傳輸控制協(xié)議是字節(jié)流協(xié)議。同樣,如果連續(xù)兩天給兩個人郵信,你也不能知道哪封信先收到。例如,PC機的并行打印端口稱為LPTl和LPT2,串行端口稱為COM1和COM2。像PC程序員使用打印端口LPT1用于打印,Internet程序員也對具體應用程序使用許多協(xié)議端口。此時,服務程序被喚醒并且為客戶提供服務,對客戶的請求做出適當?shù)姆磻?。當建立服務器程序時,應該將服務器程序設計成等候客戶的請求。Socket API中的bind()函數(shù)讓程序?qū)⒁粋€本地地址(包括主機地址和協(xié)議端口)和一個Socket聯(lián)系起來。第4章 需求分析及開發(fā)方法 需求分析一個即時通訊軟件應提供基于TCP/IP網(wǎng)絡的即時消息傳送、消息廣播、實時聊天等功能。(8) 用戶下線更新(9) 有權(quán)限的人可以發(fā)系統(tǒng)廣播通知(10) 查看用戶信息(11) 更改個人信息(12) 開機啟動設置(13) 主窗口總是浮在最上端(14) 速度快,占用資源少 系統(tǒng)功能模塊根據(jù)上述的需求分析,并針對個人所掌握的知識和自己畢業(yè)設計時間的限制,要做到面面俱到是不可能的,并考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,我設計的通訊軟件借鑒了、聊天室等即時聊天工具,聊天信息采用服務器轉(zhuǎn)發(fā)方式,只要當前在線的用戶都可以接收到,當然,也實現(xiàn)了兩人之間私聊的功能。原型法:是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎上,開發(fā)出能實現(xiàn)系統(tǒng)基本功能的一個原型,再根據(jù)用戶對原型使用與評價的意見,提出修改方案,修改完善原型,如此反復多次,直到得到用戶滿意的最終系統(tǒng)為止。使用原型法開發(fā)大體有以下幾個步驟:(1) 確定系統(tǒng)需求。原型法的生命周期提供了一種完整的、靈活的、近于動態(tài)的需求定義技術(shù)。在整個系統(tǒng)設計過程中,對客戶端和服務器端的消息到達這一事件的設計和編碼是