




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、編號:_畢 業(yè) 論 文題 目: 網(wǎng)絡多人聊天系統(tǒng)的設計與實現(xiàn) 院 (系): 成人教育學院專 業(yè): 學生姓名: 學 號: 指導教師單位: 姓 名: 職 稱: 題目類型: 與指導教師科研掛鉤 指導教師自選 應用基礎研究 生產(chǎn)實際研究 20XX 年 7月15日桂林電子科技大學畢業(yè)論文摘 要近年來計算機技術的快速發(fā)展,特別是計算機網(wǎng)絡的發(fā)展,越來越深刻的改變了人們生活的方方面面,使得人們能以更低廉的價格,開發(fā)出更方便、更實用的網(wǎng)絡工具。各種在線服務系統(tǒng),更是深刻的影響了人們的聯(lián)系和交流方式,使得人們可以在遠隔千里之遙隨時通訊。過去的種種陳舊的聯(lián)系方式,已經(jīng)不能滿足現(xiàn)代生活的需要。網(wǎng)上聊天系統(tǒng)作為一種方
2、便人與人之間聯(lián)系的實用系統(tǒng)便應運而生,為我們的工作和學習,帶來極大的方便和提高工作效率。由于目前人們交流方式變得多種多樣,其中聊天軟件憑借其友好的外觀、強大的功能、使用的便利、聯(lián)系的及時等特點博得現(xiàn)代人的青睞,其應用的市場十分廣闊?,F(xiàn)在,企業(yè)、機關、學校紛紛建立起自己的局域網(wǎng)。在局域網(wǎng),雖然可以通過文件共享的方式進行通訊,但單單使用這種方式,是非常不方便的。于是就想到做一個在局域網(wǎng)里的多功能聊天軟件,在局域網(wǎng)里,我們可以通過它,實現(xiàn)在局域網(wǎng)里方便的聯(lián)絡,進行文件傳輸,消息的發(fā)布,自己共享內(nèi)容的簡介等。在學校建立的校園網(wǎng)里,這軟件可以方便同學之間、教師之間、師生之間的相互聯(lián)絡,這樣,不用上Int
3、ernet,還可以節(jié)省資源,在學校這個大環(huán)境里,可以方便同學之間聯(lián)系,聯(lián)絡感情,促進同學之間的友誼,學生可以通過它來與不同寢室的同學,或教師討論問題。并能最大限度地利用現(xiàn)有的網(wǎng)絡資源,極大地提高工作效率。為了適應校園網(wǎng)的建設,并實現(xiàn)校園網(wǎng)內(nèi)的消息發(fā)布,學生交流,師生交流,網(wǎng)上交作業(yè)等功能。作為本人的畢業(yè)設計,本文介紹了個人開發(fā)的一款適用于校園的,一個局域網(wǎng)內(nèi)的C/S結構的通訊軟件,它將使同學們的交流更為方便,也可根據(jù)自身特點添加更多功能。我考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,借鑒了QQ、網(wǎng)絡聊天室等即時聊天工具,聊天信息采用服務器轉(zhuǎn)發(fā)方式,只要當前在線的用戶都可以接收到,當然
4、,也實現(xiàn)了兩人之間的私聊功能。軟件包括服務器程序和客戶端程序,服務器包括聊天信息即時轉(zhuǎn)發(fā),自動關機的設置及記載,發(fā)送通知,數(shù)據(jù)庫備份還原及數(shù)據(jù)庫的初始化等功能??蛻舳司哂械顷?注冊,修改個人信息,聊天等功能。關鍵詞 VB ; Access ; Winsock ; 聊天 緒論 第1頁 共21頁AbstractIn recent years the computer technology fast develop quickly, special the computer network development, the more and more profound change people h
5、ave lived aspects. Enables the people by a more inexpensive price, develops a more convenient, the more practical network tool. Each kind of on-line service system was the profound influence peoples relation and the exchange way, caused the people to be allowed to be widely separated by the great di
6、stance the remote as necessary communication. Alls orts of past obsolete connect method, already could not satisfy the modern life. The pragmatic system that cyber buck system contacts as one kind of convenient person and person between just arises at the historic moment , is ours work and study , b
7、rings about immense going to the lavatory and raises working efficiency. Because the present people exchange the way to change many and varied, in which chats software to rely on its friendly outward appearance, the formidable function, the use convenience, the relation prompt and so on the characte
8、ristic wins modern peoples favour, its application market is extremely broad.Now, the enterprise, the institution, the school all established own local area network, in local area network, although was allowed to carry on the communication through the document sharing way, but solely used this way,
9、was extremely not convenient. Thereupon thought makes multi-purpose to chat software on-line service system, was the profound influence peoples relation and the exchange way, caused the people to be allowed to be widely separated by the great distance the remote as necessary communication. Past all
10、sorts of obsolete contact method, already could not satisfy the modern life the need. On-line chats the system to take between one kind of convenient consumer and the people relates the practical system then arises at the historic moment, for ours work and the study, will bring the enormous convenie
11、nce and the enhancement working efficiency. Also because are in the local area network, in the local area network, we may through it, realize the contact which facilitates in the local area network, carries on the file transfer, the news issue, own share the content the synopsis and so on. Establish
12、es in the campus net in the school, this software may get up between the convenient schoolmate, between the teacher, between teachers and students mutual contact, like this, does not use Internet, may save the resources, in school this big environment, may between the schoolmate relate, makes friend
13、ly contacts, promotes between schoolmates friendship, the student to be allowed to come through it with the different bedroom schoolmate, the teacher to discuss the issue. And can maximum limit use the existing network resources, enormously enhances the working efficiency. In order to adapt the camp
14、us net construction, realizes in the campus net to carryon the news to issue that, the student exchanges, the teachers and students exchange, function and so on on-line work.As myself graduation project, this article introduced individual development section is suitable for the campus, in local area
15、 network C/S structure communication software, it will cause the school mates exchange to be more convenient, also might act according to own characteristic to increase multi-purpose. I considered (campus net)chats the tool as the local area network, the terminal user quantity are less, this VB mult
16、i-purpose chatted software to profit from QQ, the Internet chat room and so on promptly chatted the tool, chatted the information to use the server to retransmit the way, so long as the current on-line users all were allowed to receive, certainly, also realized two person of between privately to cha
17、t the function. Including the server procedure and the customer end procedure, the server including chats the information to retransmit immediately, automatic Shut machine down establishment and record, transmission notice, database backup return to original state and database initialization. The cu
18、stomer end has lands, the registration, revises individual information, chats and so on the function.KeyWords: VB ; Access ; Winsock ; Chat目 錄1 緒論1.1 課題的來源及意義在網(wǎng)絡無所不在的今天,在Internet上,有Icq,Oicq,MSN等網(wǎng)上尋呼軟件,極大程度上方便了處于世界各地的友人之間的相互聯(lián)系,也使世界好像一下子縮小了,不管你在哪里,只要你上了網(wǎng),打開這些軟件,就可以給你的朋友發(fā)信息,不管對方是否也同時在線,只要知道他的號碼。現(xiàn)在,企業(yè)、機
19、關、學校都紛紛建立起自己的局域網(wǎng)。在局域網(wǎng)里,雖然可以通過文件共享的方式進行通訊,但單單使用這種方式,是非常不方便的。首先,在局域網(wǎng)里的網(wǎng)上鄰居里,只能看到機器名,不清楚對方是誰,也不知道對方機器里有什么資源可以共享,而且當局域網(wǎng)內(nèi)的機器很多時,這種方式更加麻煩。于是,就想到做一個適用于局域網(wǎng)(校園網(wǎng))的聊天工具,在局域網(wǎng)里,我們可以通過它實現(xiàn)局域網(wǎng)內(nèi)方便的聯(lián)絡、進行文件傳輸、消息的發(fā)布、自己共享內(nèi)容的簡介等。在學校建立起校園網(wǎng)里,這軟件可以起到方便同學之間、教師之間、師生之間相互聯(lián)絡的作用。這樣,不用上Internet,可以節(jié)省資源,在學校這個大環(huán)境里,就可以同學之間聯(lián)系,聯(lián)絡感情,促進同學
20、之間的友誼,學生可以通過它來與不同寢室的同學,教師討論問題。并能最大限度地利用現(xiàn)有的網(wǎng)絡資源,極大地提高工作效率。為了適應校園網(wǎng)的建設,并實現(xiàn)校園網(wǎng)內(nèi)消息發(fā)布、學生交流、師生交流、網(wǎng)上交作業(yè)等功能1。1.2 課題的目的現(xiàn)在也有很多在局域網(wǎng)上不使用服務器的通訊軟件,這種軟件小巧且方便,也能解決一部分問題。但是有服務器的通訊軟件,有著不可比擬的優(yōu)勢:可以發(fā)送離線消息,不管用戶當時是否在線,下次上線時,就可以看到這條消息了;可以保存用戶的個人信息或介紹,供人查看。而且,不使用服務器的通訊軟件,是以機器為通訊單元的,而有服務器的通訊軟件是以人為通訊單元??傊?有服務器的通訊軟件在局域網(wǎng)上,還是有很大的
21、用途的,為局域網(wǎng)上通訊,帶來極大的方便。1.3 本人所做工作這個基于VB的多功能聊天軟件由本人獨立開發(fā)完成。本軟件采用面向?qū)ο蠓椒ㄟM行開發(fā)。采用面向?qū)ο蟮南到y(tǒng)模型可以使整個軟件系統(tǒng)的結構變得更加靈活,本系統(tǒng)的結構模型將采用面向?qū)ο蟮南到y(tǒng)模型,采用VB 6.0這個可視化開發(fā)工具進行編碼,最后完成主要的調(diào)試,仍有工作需要下一步完善。 桂林電子科技大學畢業(yè)論文 第2頁 共21頁2 開發(fā)工具介紹如果想編寫優(yōu)秀的聊天軟件,首先需要選擇好的編程工具。好的編程工具是成功的第一步。本文的聊天軟件就是在VB的環(huán)境中和Access數(shù)據(jù)庫相結合來實現(xiàn)軟件開發(fā)的。2.1 VB簡介Visual Basic是一個功能強大
22、的應用程序開發(fā)工具,在世界范圍內(nèi)得到了廣泛的應用。它之所以受到人們的青睞的主要原因有:Windows是當今主流操作系統(tǒng),而Visual Basic是開發(fā)Windows應用程序最簡單易學的語言之一;Visual Basic引入了面向?qū)ο蠛褪录?qū)動的程序設計思想,大大縮短了應用軟件的開發(fā)周期;Microsoft(微軟)公司十分重視Visual Basic的功能擴充,不斷地把最新技術運用到Visual Basic中,使之可以完成幾乎所有Windows應用程序的開發(fā)任務;已有越來越多的優(yōu)秀軟件支持用Visual Basic進行二次開發(fā)2。2.1.1 可視化編程用傳統(tǒng)程序設計語言設計程序時,都是通過編寫
23、程序代碼來設計用戶界面,在設計過程中看不到界面的實際顯示效果,必須編譯后運行程序才能觀察。如果對界面的效果不滿意,還要回到程序中修改。有時候,這種編程-編譯-修改的操作需要反復多次,大大影響了軟件開發(fā)效率。Visual Basic提供了可視化設計工具,把Windows界面設計的復雜性“封裝”起來,開發(fā)人員不必為界面設計而編寫大量程序代碼。只需要按設計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設置這些圖形對象的屬性。Visual Basic自動產(chǎn)生界面設計代碼,程序設計人員只需要編寫實現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設計的效率,這就為開發(fā)聊天軟件提供了
24、便利。2.1.2 面向?qū)ο蟮某绦蛟O計開發(fā)聊天軟件至少要使用面向?qū)ο蟪绦蛘Z言。4.0版以后的Visual Basic支持面向?qū)ο蟮某绦蛟O計,但它與一般的面向?qū)ο蟮某绦蛟O計語言(C+)不完全相同。在一般的面向?qū)ο蟪绦蛟O計語言中,對象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而Visual Basic則是應用面向?qū)ο蟮某绦蛟O計方法(OOP),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應有的屬性,使對象成為實在的東西。在設計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,Visual Basic自動生成對象的程序代碼并封裝起來,每個對象以圖形方式顯示在界面上,都是可視的3。2.1
25、.3 結構化程序設計語言Visual Basic是在BASIC語言的基礎上發(fā)展起來的,具有高級程序設計語言的語句結構,接近于自然語言和人類的邏輯思維方式。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,同時具有功能強大且使用靈活的調(diào)試器和編譯器。Visual Basic是解釋型語言,在輸入代碼的同時,解釋系統(tǒng)將高級語言分解翻譯成計算機可以識別的機器指令,并判斷每個語句的語法錯誤。在設計Visual Basic程序的過程中,隨時可以運行程序,而在整個程序設計好之后,可以編譯生成可執(zhí)行文件(EXE),脫離Visual Basic環(huán)境,直接在Windows環(huán)境下運
26、行,直接方便了聊天軟件的運行。2.1.4 事件驅(qū)動編程機制Visual Basic通過事件來執(zhí)行對象的操作。一個對象可能會產(chǎn)生多個事件,每個事件都可以通過一段程序來響應。例如,命令按鈕是一個對象,當用戶單擊該按鈕時,將產(chǎn)生一個“單擊”(CLICK)事件,而在產(chǎn)生該事件時將執(zhí)行一段程序,用來實現(xiàn)指定的操作。在用Visual Basic設計大型應用軟件時,不必建立具有明顯開始和結束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發(fā)某個事件來驅(qū)動完成某種特定的功能,或者由事件驅(qū)動程序調(diào)用通用過程來執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。2.1.5 訪問數(shù)據(jù)
27、庫技術本聊天軟件使用了Access數(shù)據(jù)庫。Visual Basic具有強大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。同時,Visual Basic還能直接編輯和訪問其他外部數(shù)據(jù)庫,如DBase,FoxPro,Paradox等,這些數(shù)據(jù)庫格式都可以用Visual Basic編輯和處理。Visual Basic提供開放式數(shù)據(jù)連接,即ODBC功能,可通過直接訪問或建立連接的方式使用并操作后臺大型網(wǎng)絡數(shù)據(jù)庫,如SQL Server,Oracle等。在應用程序中,可以使用結構化查詢語言SQL數(shù)據(jù)標準,
28、直接訪問服務器上的數(shù)據(jù)庫,并提供了簡單的面向?qū)ο蟮膸觳僮髦噶詈投嘤脩魯?shù)據(jù)庫訪問的加鎖機制和網(wǎng)絡數(shù)據(jù)庫的SQL的編程技術,為單機上運行的數(shù)據(jù)庫提供了SQL網(wǎng)絡接口,以便在分布式環(huán)境中快速而有效地實現(xiàn)客戶/服務器(Client/Server)方案4。2.1.6 動態(tài)數(shù)據(jù)交換(DDE)利用動態(tài)數(shù)據(jù)交換(Dynamic Data Exchange)技術,可以把一種應用程序中的數(shù)據(jù)動態(tài)地鏈接到另一種應用程序中,使兩種完全不同的應用程序建立起一條動態(tài)數(shù)據(jù)鏈路。當原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。Visual Basic提供了動態(tài)數(shù)據(jù)交換的編程技術,可以在應用程序中與其他Windows應用程序建立動態(tài)
29、數(shù)據(jù)交換,在不同的應用程序之間進行通信。2.1.7 對象的鏈接與嵌入(OLE)現(xiàn)在好多聊天軟件使用OLE技術。對象的鏈接與嵌入(OLE)將每個應用程序都看作是一個對象(object),將不同的對象鏈接(link)起來,再嵌入(embed)某個應用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件。OLE技術是Microsoft公司對象技術的戰(zhàn)略,它把多個應用程序合為一體,將每個應用程序看作是一個對象進行鏈接和嵌入,是一種應用程序一體化的技術。利用OLE技術,可以方便地建立復合式文檔(compound document),這種文檔由來自多個不同應用程序的對象組成,文檔中
30、的每個對象都與原來的應用程序相聯(lián)系,并可執(zhí)行與原來應用程序完全相同的操作5。2.1.8 動態(tài)鏈接庫(DLL)Visual Basic是一種高級程序設計語言,不具備低級語言的功能,對訪問機器硬件的操作不太容易實現(xiàn)。但它可以通過動態(tài)鏈接庫技術將C/C+或匯編語言編寫的程序加入到Visual Basic應用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈接庫,還可以調(diào)用Windows應用程序接口(API)函數(shù),實現(xiàn)SDK所具有的功能6。2.2 Access簡介Access是Office辦公套件中一個極為重要的組成部分。剛開始時微軟公司是將Access單獨作為一個產(chǎn)品進行銷售的,
31、后來微軟發(fā)現(xiàn)如果將Access捆綁在Office中一起發(fā)售,將帶來更加可觀的利潤,于是第一次將Access捆綁到Office97中,成為Office套件中的一個重要成員?,F(xiàn)在它已經(jīng)成為Office辦公套件中不可缺少的部件了。自從1992年開始銷售以來,Access 已經(jīng)賣出了超過6000萬份,現(xiàn)在它已經(jīng)成為世界上最流行的桌面數(shù)據(jù)庫管理系統(tǒng)。后來微軟公司通過大量地改進,將Access的新版本功能變得更加強大。不管是處理公司的客戶訂單數(shù)據(jù);管理自己的個人通訊錄;還是大量科研數(shù)據(jù)的記錄和處理,人們都可以利用它來解決大量數(shù)據(jù)的管理工作。除了成為 Web 上數(shù)據(jù)交換的標準技術外,擴展標記語言(XML)也
32、正迅速成為商務軟件應用程序間交換數(shù)據(jù)時的首選技術方案。Microsoft Access 20XX 提供有功能強大而直觀的 XML 數(shù)據(jù)共享功能,而無須考慮平臺、數(shù)據(jù)格式、協(xié)議、架構或商務規(guī)則之間的差異。利用熟悉的 Access 用戶界面,您可以方便地利用 Jet 或 SQL Server 結構和數(shù)據(jù)創(chuàng)建 XML 數(shù)據(jù)或架構文檔。同時,還可使用來自窗體、報表和數(shù)據(jù)訪問頁中其他應用程序的 XML 數(shù)據(jù)。例如,假設您的數(shù)據(jù)跨各種不同的源分布:包括內(nèi)部 SQL server、Excel 電子表格以及諸如 SAP 的其他數(shù)據(jù)提供程序。由于這些源將 XML 用作自己的數(shù)據(jù)交換格式,因此可以在 Access
33、 中創(chuàng)建一系列聚合查詢,以將該數(shù)據(jù)拉入視圖中,然后利用這些視圖設計窗體和報表。通過簡化架構和樣式表的創(chuàng)建和應用,Access 還提供了便于控制數(shù)據(jù)的方法。Access可通過一種標準一致的方式,便捷地描述豐富的結構化XML數(shù)據(jù),同時也便于與其他應用程序間實現(xiàn)數(shù)據(jù)傳輸。例如,可以使用Access創(chuàng)建描述數(shù)據(jù)結構的架構,然后將該架構發(fā)送給自己的供應商,以便他們準確了解您所期望的發(fā)票數(shù)據(jù)格式7。 桂林電子科技大學畢業(yè)論文 第14頁 共21頁3網(wǎng)絡通訊程序的設計原理和過程對網(wǎng)絡通訊程序的設計的原理和過程的透徹理解,是網(wǎng)絡通訊程序的前提。本章將簡要地介紹一下有關網(wǎng)絡通訊程序設計的基本知識。3.1 TCP/
34、IP協(xié)議TCP/IP是國際互聯(lián)網(wǎng)所采用進行網(wǎng)際互連的通信協(xié)議。IP互連協(xié)議(Internet Protocol),負責主機之間的傳輸數(shù)據(jù)。TCP傳輸控制協(xié)議(Transmission Control Protocol),負責在應用程序之間傳遞數(shù)據(jù)。實際所稱的TCP/IP協(xié)議包括了在國際互聯(lián)網(wǎng)上應用的一組協(xié)議,互聯(lián)網(wǎng)協(xié)議組是此協(xié)議組的另一個名字。這個協(xié)議組包括幾種工作在不同層次上的網(wǎng)絡協(xié)議,UDP用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol),提供給用戶進程的無連接協(xié)議,也負責在應用程序之間無連接傳遞數(shù)據(jù),但不執(zhí)行正確性檢查。ICMP互連網(wǎng)控制報文協(xié)議(Internet Cont
35、rol Message Protocol),處理主機間的差錯和傳送控制。ARPAdress解析協(xié)議(Address Resolution Protocol),負責將網(wǎng)絡層Adress轉(zhuǎn)換成鏈路層Adress。RARP反向Adress解析協(xié)議(Reverse Address Resolution Protocol),負責將鏈路層Adress轉(zhuǎn)換成網(wǎng)絡層Adress。TCP/IP協(xié)議的核心是傳輸層協(xié)議(TCP、UDP)、網(wǎng)絡層協(xié)議(IP)和物理接口層,這三層通常在操作系統(tǒng)的內(nèi)核中實現(xiàn)。TCP/IP網(wǎng)絡環(huán)境下的應用程序設計是通過網(wǎng)絡系統(tǒng)編程界面Socket實現(xiàn)的,Socket提供應用程序與系統(tǒng)內(nèi)核之
36、間的網(wǎng)絡編程接口。協(xié)議可以是可靠的可以是不可靠的。可靠的協(xié)議意味著當數(shù)據(jù)通過協(xié)議傳遞時,協(xié)議保證數(shù)據(jù)正確傳輸。可靠傳輸包括幾個特征。首先,為了確保數(shù)據(jù)正確傳送,協(xié)議在通信應用程序之間互相交換確認信息。也就是說,程序每次發(fā)送個報文時,都期望對方發(fā)送一個相當于說:“我得到這個報文”的確認信息。如果發(fā)送程序沒有收到這樣一個確認信息,程序?qū)⒆詣又匦掳l(fā)送此報文,直到得到應答信息為止。其次,為了確保傳輸?shù)臄?shù)據(jù)有效,可靠協(xié)議在每次傳輸時,都包含一個或更多的校驗和(CRC)。接收計算機重新計算校驗和,與收到的校驗和進行比較。如果不匹配,就表明在傳輸過程中發(fā)生了錯誤。傳輸控制協(xié)議TCP是一個使用校驗和、確認信息
37、以及其它可靠數(shù)據(jù)傳輸技術的可靠協(xié)議。相比之下,不可靠協(xié)議不能確保數(shù)據(jù)正確傳輸。協(xié)議試圖傳輸數(shù)據(jù),但不保證成功。而且,不可靠協(xié)議在傳輸失敗后,并不通知發(fā)送方應用程序??蓪⒉豢煽繑?shù)據(jù)傳輸比作沒有返回Adress的信件。如果發(fā)送Adress是鍺誤的,由于郵遞系統(tǒng)不能將信退回給你,所以你就不知道信件有沒有送到。即使發(fā)送Adress是正確的,也不能保證郵遞系統(tǒng)不丟失你的信件8。TCPIP協(xié)議組中存在的兩個基本數(shù)據(jù)服務是:字節(jié)流服務和數(shù)據(jù)報服務。使用字節(jié)流的協(xié)議將信息看作一串字節(jié)流進行傳輸。協(xié)議不管要求發(fā)送或接收數(shù)據(jù)的長度和傳送數(shù)目,只是將數(shù)據(jù)看作一個簡單的字節(jié)串流。使用數(shù)據(jù)報的協(xié)議將信息視作一個獨立單元
38、進行傳輸。協(xié)議單獨發(fā)送每個數(shù)據(jù)報數(shù)據(jù)報之間不相互依賴。例如,假設你使用字節(jié)流協(xié)議發(fā)送5個數(shù)據(jù)段(每個有10字節(jié))和一個包含50字節(jié)的數(shù)據(jù)段(總共100字節(jié))。連接的接收方可以按每次20XX讀數(shù)據(jù)(要讀5次)。傳輸控制協(xié)議是字節(jié)流協(xié)議。字節(jié)流協(xié)議不關心每個數(shù)據(jù)段的長度。如果應用程序使用字節(jié)流協(xié)議發(fā)送數(shù)據(jù),則協(xié)議能夠保證連接的另一端按照發(fā)送的順序接收數(shù)據(jù)。相比之下,傳輸?shù)酵荒康牡氐亩鄠€數(shù)據(jù)報可能不會按發(fā)送順序到達。如果接收方應用程序要求數(shù)據(jù)順序一致,應用程序必須在數(shù)據(jù)到達后,校對這些數(shù)據(jù)。用戶數(shù)據(jù)報協(xié)議和互連網(wǎng)協(xié)議使用數(shù)據(jù)報傳輸數(shù)據(jù)。數(shù)據(jù)報類似于信件。如果你在同一天給同一個人郵寄兩封信,你無法知
39、道那個人先收到那封信。同樣,如果連續(xù)兩天給兩個人郵信,你也不能知道哪封信先收到。收到信的順序和發(fā)送順序可能相反。在TCP/IP術語中,端口(Port)類似于IPAdress,IPAdress與主機Adress是相聯(lián)系的,端口和協(xié)議相聯(lián)系。IP數(shù)據(jù)報保存目的和源IPAdress,同樣傳輸協(xié)議也保存源和目的端口號。如果端口這個概念對你來說很陌生,請考慮計算機上的硬件端口。你可能編寫過往硬件端口送數(shù)據(jù)的程序。例如為了打印,如果沒有其它程序的話,必須向串或并端口發(fā)送數(shù)據(jù)。PC機給它的端口命名和編號。例如,PC機的并行打印端口稱為LPTl和LPT2,串行端口稱為COM1和COM2。在Internet上,
40、網(wǎng)絡只是簡單地對協(xié)議端口編號。在PC機,LPT1表示并行端口1。成千個PC機應用程序使用此方案。多年來,程序員編寫PC程序時都假定LPT1表示并行打印端口1。同樣,程序員將每個Internet協(xié)議端口與一個特定的應用程序和功能聯(lián)系在一起。Internet包括像FTP、Telnet和Mail這樣廣泛使用的應用程序采用的應用協(xié)議,在Internet上,這些應用程序使用一種叫做“通用口分配”的端口。通用口分配是特定應用程序廣泛使用的一個協(xié)議端口。像PC程序員使用打印端口LPT1用于打印,Internet程序員也對具體應用程序使用許多協(xié)議端口。例如,平凡文件傳輸協(xié)議(FTP)的通用口分配是端口號21的
41、。Telnet的通用口分配是端口號238。3.2 客戶機/服務器模型客戶機/服務器模型也是一種網(wǎng)絡模型,但與前述的模型不同,它并不是定義了網(wǎng)絡的層次結構,而是描述了一種網(wǎng)絡程序運行的方式。客戶機/服務器模型將網(wǎng)絡應用程序分為客戶和服務器兩部分。客戶方對服務器方發(fā)送信息請求,服務器方對其做出相應回答,提供服務。在TCP/IP網(wǎng)絡應用中,多數(shù)網(wǎng)絡應用程序是使用客戶機/服務器模型設計的。服務程序通常在一個眾所周知的Adress監(jiān)聽對服務的請求,也就是說,服務進程一直處于休眠狀態(tài),直到一個客戶程序提出了請求信息。此時,服務程序被喚醒并且為客戶提供服務,對客戶的請求做出適當?shù)姆磻?。雖然基于連接的服務是設
42、計客戶/服務器應用程序的標準,但有些服務也是可以通過數(shù)據(jù)報Socket提供的。通常,網(wǎng)絡應用程序包含兩個獨立的應用程序:客戶程序和服務器程序。但是,也可以設計同時完成這兩種功能的程序,例如,一些服務器程序如果不能完成一個服務請求時,它將轉(zhuǎn)而充當客戶程序,向其它服務器程序請求信息。這方面的一個典型例子就是提供Internet從域名到IPAdress映射服務的DNS服務器。為了充分理解TCP/IP協(xié)議族,必須理解幾個重要術語。這些術語指出了兩個TCP/IP傳輸協(xié)議:用戶數(shù)據(jù)包協(xié)議(UDP)和傳輸控制協(xié)議(TCP)之間的區(qū)別。這些術語進一步描述了與網(wǎng)絡連接、協(xié)議可靠性以及數(shù)據(jù)服務有關的協(xié)議特性。當建
43、立服務器程序時,應該將服務器程序設計成等候客戶的請求。你知道,TCP傳輸層通過協(xié)議端口和應用程序(像服務器和客戶)通信,也就是說,為了按收客戶請求,服務器程序必須對傳輸層的一個特定協(xié)議端口進行偵聽。當服務器配置socket接口時,它使用bind()函數(shù)讓Socket執(zhí)行體登記一個協(xié)議端口。也就是說,程序告訴Socket執(zhí)行體使用哪一個協(xié)議端口進行數(shù)據(jù)傳送。Socket執(zhí)行體接著告訴傳輸層某個特定協(xié)議端口已被使用,并將其收到的所有數(shù)據(jù)傳送給Socket API。使用無連接協(xié)議的程序和使用面向連接協(xié)議的服務器程序之間的主要相似之處是它們都必須對一個協(xié)議端口進行偵聽。例如,無連接和連接服務器程序必須
44、在協(xié)議端口偵聽客戶請求。同樣,由于無連接客戶程序沒有和遠地主機建立直接連接,所以它也必須對協(xié)議端口進行偵聽,以便接收以對它服務請求產(chǎn)生的數(shù)據(jù)報應答。Socket API中的bind()函數(shù)讓程序?qū)⒁粋€本地Adress(包括主機Adress和協(xié)議端口)和一個Socket聯(lián)系起來。下面程序行顯示了一個典型的函數(shù)調(diào)用:resultbind ( socket_handle, local_structure, socket_address, address_ length)無連接客戶程序也對一個協(xié)議端口進行偵聽。使用無連接協(xié)議的程序不和遠地主機建立直接連接。無連接客戶程序使用數(shù)據(jù)報發(fā)送網(wǎng)絡服務請求,它不
45、建立點到點連接。因此無連接客戶程序必須在一個協(xié)議端口,對應答數(shù)據(jù)報進行偵聽。與服務器程序一樣,無連接客戶程序也使用bind()函數(shù)讓Socket執(zhí)行體登記協(xié)議端口。也就是說,類似服務器程序,無連接客戶程序告訴Socket執(zhí)行體使用哪個協(xié)議端口進行數(shù)據(jù)傳輸。Socket執(zhí)行體處理傳輸層內(nèi)UDP軟件模塊和客戶程序之間的接口9。圖31 無連接協(xié)議的套接字調(diào)用的時序圖圖32 面向連接的套接字系統(tǒng)調(diào)用時序圖3.3 本章小結本章詳細介紹了聊天軟件中重要的TCP/IP協(xié)議以及基于TCP/IP協(xié)議的客戶/服務器程序的設計。為下一步多功能聊天軟件的設計開發(fā)打好了通信方面的理論基礎。4 需求分析及開發(fā)方法4.1
46、需求分析一個聊天軟件應提供基于TCP/IP網(wǎng)絡的即時消息傳送、消息廣播、實時聊天、文件傳輸?shù)裙δ?。列舉如下:1. 支持多賬號。2. 可以同時發(fā)送同一個消息給多人,通過輸入這些人的號碼列表或姓名列表。3. 可以同時發(fā)送一個消息給所有好友。4. 有權限的人可以向所有用戶發(fā)送“消息廣播”,便于消息的發(fā)布。5. 即使用戶不在線,也能通過服務器發(fā)送離線消息。6. 提供消息、聊天的歷史記錄,方便對信息的查看和管理。7. 提供查看在線的人的功能。8. 提供按ID或姓名查找用戶的功能,方便添加用戶。9. 小窗口顯示,不占用屏幕很大的空間。10. 支持熱鍵調(diào)出后臺的應用程序。11. 應用程序運行后,在任務欄右邊
47、生成一個圖標,單擊彈出在線狀態(tài)菜單, 雙擊顯示應用程序窗口,右擊彈出主菜單。12. 支持隱身登陸,可以看到在線的朋友,朋友卻不知道你上線了。13. 可以實時顯示用戶的狀態(tài)和隨時改變自己的狀態(tài)。14. 提供了自動彈出消息。15. 好友上線通知。16. 好友下線更新17. 有權限的人可以發(fā)系統(tǒng)廣播(或在服務器上發(fā))18. 查看好友信息19. 按姓名或號碼查找某人20. 在好友列表中刪除某人21. 可以選擇在某人的好友中刪除自己22. 更改個人信息23. 系統(tǒng)設置24. 給在線好友傳文件25. 消息管理器26. 在程序中設定最大,最小窗口尺寸(寬度,高度)27. 主窗口總是浮在最上端28. 速度快,
48、占用資源少4.2 系統(tǒng)功能模塊根據(jù)上述聊天軟件的需求分析,并針對個人所掌握的知識和自己畢業(yè)設計時間的限制,要做到面面具到是不可能的。所以考慮到作為局域網(wǎng)(校園網(wǎng))聊天工具,終端用戶數(shù)量較少,本VB的多功能聊天軟件借鑒了QQ、聊天室等及時聊天工具,聊天信息采用服務器轉(zhuǎn)發(fā)方式,只要當前在線的用戶都可以接收到,當然,也實現(xiàn)了兩人之間的私聊功能。包括服務器程序和客戶端程序,服務器包括聊天信息即時轉(zhuǎn)發(fā),自動關機的設置及記載,發(fā)送通知,數(shù)據(jù)庫備份還原及數(shù)據(jù)庫的初始化??蛻舳司哂械顷?注冊,修改個人信息,聊天等功能,功能比較簡單,可實現(xiàn)聊天功能。4.3 系統(tǒng)功能需求圖 VB聊天系統(tǒng)聊天記錄轉(zhuǎn)發(fā)發(fā)送通知關機設
49、置及記載登陸注冊聊天服務器端修改個人信息客戶端幫助和關于備份還原及初始化圖4-1 系統(tǒng)功能需求圖4.4 開發(fā)方法介紹目前比較成熟的信息系統(tǒng)開發(fā)方法有:生命周期法、原型法、面向?qū)ο蠓ǖ?。生命周期?把一個信息系統(tǒng)從其提出、分析、設計和使用,直到停止使用的整個生存期視為一個生命周期。整個生命周期劃分為五個主要工作階段:可行性分析階段、系統(tǒng)分析階段、系統(tǒng)設計階段、系統(tǒng)實施階段和系統(tǒng)運行、維護與評價階段。通常采用結構化系統(tǒng)分析和系統(tǒng)設計方法,自上而下分析、設計、強調(diào)開發(fā)過程的整體性和全局性;開發(fā)過程在時間上基本按階段進行,任務明確;結合用戶需求進行開發(fā);開發(fā)周期長,維護不方便。適用于開發(fā)需求較明確固定
50、的信息系統(tǒng)。原型法:是系統(tǒng)開發(fā)者在初步了解用戶需求的基礎上,開發(fā)出能實現(xiàn)系統(tǒng)最基本功能的一個原型,再根據(jù)用戶對原型使用與評價的意見,提出修改方案,修改完善原型,如此反復多次,直到得到用戶滿意的最終系統(tǒng)為止。開發(fā)過程以用戶為中心,開發(fā)周期短。適用于開發(fā)需求不夠明確或不斷變化的軟件。面向?qū)ο蠓?以類,類的繼承,聚集等概念描述客觀事物以及聯(lián)系。為管理信息系統(tǒng)的開發(fā)提供了全新的思路,面向?qū)ο蠓椒ㄒ詫ο鬄橹行摹F涮卣髦饕心K性,繼承性和類比性,動態(tài)連接性。其中原型法是近幾年發(fā)展起來的一種開發(fā)方法,該方法從一個初始信息要求的集合出發(fā),在發(fā)展中逐步完善信息系統(tǒng)。本VB多功能聊天軟件采用的是原型法。使用原型
51、法開發(fā)大體有以下幾個步驟:1確定系統(tǒng)需求。其中包括系統(tǒng)的應用范圍、系統(tǒng)開發(fā)的經(jīng)費估算等。2設計初始原型。包括確定需求和開發(fā)工作模型,例如屏幕格式、功能菜單、報表格式以及對關鍵數(shù)據(jù)和功能的說明等。3對初始原型進行需求迭代,不斷進行修正或改進,直至得到一個用戶滿意的原型,從而終止原型迭代過程。4如果需要,可寫出系統(tǒng)必要成分的嚴格、詳細的說明(如將需求轉(zhuǎn)化為報表)。5原型效果考察??疾煊脩粜录尤氲男枨笮畔⒑徒M成成分的嚴格說明信息,看其對原型效果的影響,是否影響到原型的有效性,如果導致原型失敗,應加以修正和改進。原型法的生命周期提供了一種完整的、靈活的、近于動態(tài)的需求定義技術。它綜合了所有提出的必要需
52、求,建立原型就近似于預先需求的規(guī)格說明。對應于原型的工作模型可以進行必要的剪裁和組織,以便更接近目標系統(tǒng)。它可以綜合用戶、領導和原型開發(fā)人員的各方需求10。Yes指導可行性分析方法選擇?嚴格說明方法初步設計整理原型提供文檔識別基本要求開發(fā)工作模型模型驗證細化說明?原型完成?修正和改進原型效果好?嚴格說明YesNoYesYesNoNoNo圖4-2原型法工作流程圖 5 結論 第19頁 共21頁5 總體設計5.1 設計思想服務器端和客戶端需要分別設計,其中客戶端除了主聊天界面外,還加上了登錄界面,以便以后擴展。作為聊天室系統(tǒng),客戶端信息全部來自于服務器,服務器端應能實時掌握所有客戶登錄、退出、對話情
53、況,并能實時轉(zhuǎn)發(fā)、廣播給相應客戶。由于服務器要和多個客戶聯(lián)系,所以在設計中采用了Winsock控件數(shù)組的形式,其中下標為 0 的元素作為監(jiān)聽控件,當有客戶登錄、退出或者相互間發(fā)送消息時,能正確接收并作相應處理,其余控件數(shù)組元素當有客戶連接時自動裝入??蛻舳酥恍枰粋€ Winsock控件,應具有隨時連接、斷開服務器的功能,也應具有對接收到的信息做出正確分析、處理的能力。在整個系統(tǒng)設計過程中,對客戶端和服務器端消息到達這一事件的設計和編碼是系統(tǒng)的關鍵。5.2 關鍵通信技術Winsock本系統(tǒng)的開發(fā)環(huán)境是VB 6.0 ,采用了面向網(wǎng)絡連接的Winsock控件。Winsock是不可見控件,控件文件名是M
54、SWINSCK.OCX,全稱為Microsoft Winsock Control,它能實現(xiàn)機器與機器間點對點的連接以及對話,使用時要將此控件調(diào)入工具箱。Winsock控件可以使用兩種協(xié)議:TCP協(xié)議和 UDP協(xié)議。使用TCP協(xié)議來實現(xiàn)服務器 - N 客戶模式。UDP可以實現(xiàn)點對點無服務器通訊,這里不作介紹。TCP協(xié)議即數(shù)據(jù)傳輸協(xié)議,允許創(chuàng)建和維護與遠程計算機的連接,使彼此可以進行數(shù)據(jù)傳輸。利用 TCP協(xié)議通訊必須分別建立客戶應用程序和服務器應用程序。在創(chuàng)建客戶應用程序時,必須知道服務器名或其 IPAdress(RemoteHost 屬性)及服務器進行偵聽的端口(Re2motePort屬性) ,
55、然后調(diào)用 Connect 方法。創(chuàng)建服務器應用程序時 ,應設置一個偵聽端口(LocalPort 屬性)并調(diào)用 listen 方法。當客戶機需要連接時(connect),就會發(fā)生 ConnectionRe2quest 事件。為了完成連接,可以在 ConnectionRequest 事件中調(diào)用Accept 方法。建立連接后 ,任何一方計算機都可以發(fā)送、接收對方數(shù)據(jù)。如果要發(fā)送數(shù)據(jù),需調(diào)用 SendData 方法。當接收到數(shù)據(jù)時,會發(fā)生 DataArrival 事件,調(diào)用 DataArrival 事件中的 GetData方法就可以獲得對方傳送的數(shù)據(jù)11。Winsock控件屬性:Protocol 值為 sckTCPProtocol時使用 TCP/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鼻咽癌相關知識及護理常規(guī)
- 2024年CFA考試指導手冊試題及答案
- 餐飲公司管理人員培訓
- 備戰(zhàn)2024年特許金融分析師的試題及答案技巧
- 成功的秘訣:CFA試題及答案
- 八年級上冊《用“SAS”判定三角形全等》課件與練習
- 第三章 5 多普勒效應-2025版高二物理選擇性必修一
- 中班預防流感
- 國內(nèi)英語教師轉(zhuǎn)型為國際漢語教師培訓方案研究
- 黃金提純技術課件
- 青海省全省市縣鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務中心基本公共衛(wèi)生服務醫(yī)療機構信息名單目錄450家
- 國學智慧爾雅課期末考試題庫答案2022
- 企業(yè)安全生產(chǎn)檢查記錄表90292
- ( SiO2+Al2O3+Fe2O3) 總含量試驗檢測記錄表
- 2022年自考《管理學原理》習題庫及答案
- DB11-T 1834-2021城市道路工程施工技術規(guī)程
- 大贏CNC48操作手冊
- DB23∕T 1019-2020 黑龍江省建筑工程資料管理標準
- 除顫儀的使用-PPT課件
- 2020 新ACLS-PCSA課前自我測試-翻譯版玉二醫(yī)【復制】附有答案
- 彩鋼棚專項施工措施方案
評論
0/150
提交評論