




已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 本文配套程序下載地址 : 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計(jì)站 ,免費(fèi)畢業(yè)設(shè)計(jì)論文 ,無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計(jì) ,出售各類(lèi)畢業(yè)設(shè)計(jì)源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠(chéng)為您服務(wù)! 分類(lèi)號(hào): TP311.1 U D C: D10621-032-(2007)6165-0 密 級(jí):公 開(kāi) 編 號(hào): 2003032147 成 都 信 息 工 程 學(xué) 院 學(xué) 位 論 文 局域網(wǎng)的聊天程序的實(shí)現(xiàn) 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 論文作者 姓名: 吳劍輝 申請(qǐng)學(xué)位專(zhuān)業(yè): 網(wǎng)絡(luò)工程 申請(qǐng)學(xué)位類(lèi)別: 工學(xué)學(xué)士 指導(dǎo)教師姓名(職稱(chēng)): 王海春(教授) 論文提交日期: 2007 年 06 月 10 日 局域網(wǎng)的聊天程序的實(shí)現(xiàn) 摘 要 網(wǎng)絡(luò)通訊是目前計(jì)算機(jī)用戶(hù)進(jìn)行交流最普遍的方式,各種各樣的聊天軟件也層出不窮;服務(wù)提供商也提供了越來(lái)越豐富的通訊服務(wù)功能。 本文介紹了在Windows 環(huán)境下開(kāi)發(fā)局域網(wǎng)聊天程序 思路 和方法。系統(tǒng)使用流行的 Delphi7.0 開(kāi)發(fā)軟件,采用 Socket 技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)通訊。數(shù)據(jù)庫(kù)使用 Delphi 自帶的 Database desktop。系統(tǒng)采用典型的 C/S(服務(wù)器 /客戶(hù) 端 )構(gòu)架 。 系統(tǒng)主要實(shí)現(xiàn)了用戶(hù)注冊(cè)、登錄、聊天、服務(wù)器管理等功能。 本系統(tǒng)從需求分析、系統(tǒng)的設(shè)計(jì)、具體功能的實(shí)現(xiàn)都嚴(yán)格遵循了軟件設(shè)計(jì)工程的思想。 關(guān)鍵詞 : Socket; TCP/IP; C/S 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc. From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words: Socket; TCP/IP; C/S無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 目 錄 論文總頁(yè) 數(shù): 22 頁(yè) 1 引 言 . 1 2 局域網(wǎng)聊天程序系統(tǒng)分析 . 1 2.1 系統(tǒng)理論基礎(chǔ) . 1 2.1.1 TCP/IP 的特點(diǎn) . 1 2.1.2 客戶(hù)機(jī) /服務(wù)器模式 . 2 2.1.3 Socket 介紹 . 3 2.2 系統(tǒng)需求分析 . 5 2.3 系統(tǒng)設(shè)計(jì)目標(biāo) . 6 2.4 系運(yùn)行環(huán)境 . 6 2.5 系統(tǒng)開(kāi)發(fā)環(huán)境 . 6 3 局域網(wǎng)聊天程序系統(tǒng)設(shè)計(jì) . 7 3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) . 7 3.2 數(shù)據(jù)庫(kù)設(shè)計(jì) . 7 3.3 客戶(hù)端服務(wù)器功能設(shè)計(jì) . 7 3.4 客戶(hù)端設(shè)計(jì) . 8 3.5 服務(wù)器端設(shè)計(jì) . 9 3.6 聊天中公聊和私聊的設(shè)計(jì) . 10 3.7 界面設(shè)計(jì) . 11 3.7.1 客戶(hù)端界面設(shè)計(jì) . 11 3.7.2 服務(wù)器界面設(shè)計(jì) . 12 4 系統(tǒng)實(shí)現(xiàn)及核心代碼 . 13 4.1 網(wǎng)絡(luò)通信核心代碼 . 13 4.2 用戶(hù)注冊(cè)登錄下線(xiàn)模塊功能代碼 . 15 5 系統(tǒng)測(cè)試 . 17 5.1 測(cè)試方法 . 17 5.2 測(cè)試結(jié)果 . 17 5.3 測(cè)試結(jié)論 . 17 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 5.4 程序運(yùn)行截圖 . 18 結(jié) 論 . 18 參考文獻(xiàn) . 19 致 謝 . 20 聲 明 . 21 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 1 頁(yè) 共 22 頁(yè) 1 引 言 即時(shí)通訊軟件的出現(xiàn)正在逐漸改變?nèi)藗兊臏贤ㄅc交際方式。無(wú)論近在咫尺,還是遠(yuǎn)隔重洋,也只是在鍵盤(pán)和鼠標(biāo)之間就可以解決問(wèn)題 。 即時(shí)通訊服務(wù)非常適合企業(yè)內(nèi)部或企業(yè)和客戶(hù)之間的交流。網(wǎng)絡(luò)聊天程序 .越來(lái)越 影響著我們的網(wǎng)絡(luò)生活 。 習(xí)慣了通過(guò)類(lèi)似 ICQ、 QQ、 MSN 之類(lèi)的程序和朋友聊天、發(fā)信息,不過(guò)所有聊天程序都需要 Internet 的支持,而無(wú)法在 局域網(wǎng)內(nèi)部 “大顯身手 ”,那么你是否想到過(guò)要讓單位內(nèi)部的員工 ,寢室周?chē)耐瑢W(xué) ,不用上 Internet 就可以輕松體驗(yàn)到聊天的快樂(lè)呢? 基于以上原因,開(kāi)發(fā) 局域網(wǎng) 聊天程序就有了必要性 ,讓單位員工 或?qū)嬍彝瑢W(xué) 不出內(nèi)網(wǎng)就能自由聊天 。 隨著全球信息化進(jìn)程的不斷發(fā)展,網(wǎng)絡(luò)也在飛速發(fā)展。出于高效、快速地處理各種事務(wù)的目的,越來(lái)越多的企業(yè) 和單位 在其內(nèi)部使用局域網(wǎng)來(lái)進(jìn)行工作 和交流 。在內(nèi)部局域網(wǎng) 的幫助下,企業(yè)得以簡(jiǎn)化信息流程,提高信息交換的速度,從而提高工作效率。然而,隨著 局域網(wǎng) 規(guī)模的擴(kuò)大,業(yè)務(wù)量的增加,在局域網(wǎng)上運(yùn)行的應(yīng)用越來(lái)越多,如知識(shí)庫(kù)、網(wǎng)絡(luò)會(huì)議、數(shù)據(jù)庫(kù)應(yīng)用和數(shù)據(jù)的同步與備份等,這些應(yīng)用對(duì)局域網(wǎng)的信息吞吐、處理能力的要求也越來(lái)越高。這些在原有局域網(wǎng)設(shè)計(jì)之初未曾考慮到的新情況的出現(xiàn)使得局域網(wǎng)不堪重負(fù),容易發(fā)生信息阻塞,此時(shí),局域網(wǎng)不但不能提高生產(chǎn)效率,反而成為 工作效率 的瓶頸。 為了解決上述矛盾, 前輩們 提出了許多方法。提升網(wǎng)絡(luò)帶寬及增加服務(wù)器的吞吐能力是解決此矛盾的一種方法。然而,從 局域網(wǎng) 運(yùn)行的 成本方面考慮,無(wú)論是單純地提升網(wǎng)絡(luò)帶寬或增加服務(wù)器的吞吐能力都不能從根本上解決局域網(wǎng)資源緊張的問(wèn)題,對(duì)舊有局域網(wǎng)的大規(guī)模硬件改造反而會(huì)增加 成本 的負(fù)擔(dān)。 基于 Socket 的局域網(wǎng)聊天室是局域網(wǎng)通信軟件的具體實(shí)例之一,它很好地詮釋了 Socket 通信的原理,并且在 局域網(wǎng) 部通信、教學(xué)、討論等應(yīng)用中都具有一定的實(shí)用價(jià)值。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)。 2 局域網(wǎng)聊天程序系統(tǒng)分析 2.1 系統(tǒng)理論基礎(chǔ) 2.1.1 TCP/IP 的特點(diǎn) TCP/IP 協(xié)議的核心 部分是傳輸層協(xié)議 (TCP、 UDP),網(wǎng)絡(luò)層協(xié)議 (IP)和物理接口層,這三層通常是在操作系統(tǒng)內(nèi)核中設(shè)計(jì)。因此用戶(hù)一般不涉及。 TCP 是面無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 2 頁(yè) 共 22 頁(yè) 向連接的,通信雙方保持一條通路,好比目前的電話(huà)線(xiàn),使用 telnet 登陸 BBS,用的就是 TCP 協(xié)議; UDP 是無(wú)連接的,通信雙方都不保持對(duì)方的狀態(tài),瀏覽器訪(fǎng)問(wèn) Internet 時(shí)使用的 HTTP 協(xié)議就是基于 UDP 協(xié)議的。編程時(shí),編程界面有兩種形式:一、是由內(nèi)核心直接提供的系統(tǒng)調(diào)用;二、使用以庫(kù)函數(shù)方式提供的各種函數(shù)。前者為核內(nèi)設(shè)計(jì),后者為核外設(shè)計(jì)。用戶(hù)服務(wù)要通過(guò)核外的應(yīng)用程序才能設(shè)計(jì), 所以要使用套接字 (socket)來(lái)設(shè)計(jì)。 2.1.2 客戶(hù)機(jī) /服務(wù)器模式 C/S 結(jié)構(gòu)( Client/Server 結(jié)構(gòu))是大家熟知的客戶(hù)機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng) 體系結(jié)構(gòu) ,通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client 端和 Server 端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用 軟件 系統(tǒng)都是 Client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web 應(yīng)用發(fā)展, Web 和 Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯 組件 ;因此,內(nèi)部的和外部的用戶(hù)都可以訪(fǎng)問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中 的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。 首先服務(wù)器方要啟動(dòng),并根據(jù)請(qǐng)求提供相應(yīng)服務(wù) : ( 1) 打開(kāi)一通信通道并告知本地主機(jī),它在某一公認(rèn)地址端口上 (如 http 為80)接受客戶(hù)請(qǐng)求。 ( 2) 等待客戶(hù)請(qǐng)求到達(dá)該端口。 ( 3) 接收到重復(fù)服務(wù)請(qǐng)求,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。接收并發(fā)服務(wù)請(qǐng)求,要激活一新進(jìn)程來(lái)處理這個(gè)客戶(hù)請(qǐng)求。新進(jìn)程處理此客戶(hù)請(qǐng)求,并不需要對(duì)其他請(qǐng)求做出應(yīng)答。服務(wù)完成后,關(guān)閉此新進(jìn)程與客戶(hù)的通信鏈路,并終止。 ( 4) 返回第二步,等待另外的客戶(hù)請(qǐng)求 ( 5) 關(guān)閉服務(wù)器。 客戶(hù)方 : ( 1) 打開(kāi)一通信通道,并連接到服務(wù)器所在主機(jī)的特定端口。 ( 2) 向服務(wù)器發(fā)出服務(wù)請(qǐng)求報(bào)文,等待并接收應(yīng)答;繼續(xù)提出請(qǐng)求。 ( 3) 請(qǐng)求結(jié)束后關(guān)閉通信通道并終止。 從上面的描述過(guò)程可知: ( 1) 客戶(hù)與服務(wù)器進(jìn)程的作用是非對(duì)稱(chēng)的。因此編碼不同。 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 3 頁(yè) 共 22 頁(yè) ( 2) 服務(wù)進(jìn)程一般是先于客戶(hù)請(qǐng)求啟動(dòng)的。只要系統(tǒng)運(yùn)行,該進(jìn)程一直存在,直到正常終止或者強(qiáng)迫終止。 在 TCP/IP 網(wǎng)絡(luò)中兩個(gè)進(jìn)程間的相互作用的主機(jī)模式是客戶(hù)機(jī) /服務(wù)器模式(Client/Server model)。該模式的建立基于以下兩點(diǎn): 1、非對(duì)等作用; 2、通信完全是異步的 。客戶(hù)機(jī) /服務(wù)器模式在操作過(guò)程中采取的是主動(dòng)請(qǐng)求服務(wù)響應(yīng)的方式 ,如圖 1 所示:客 戶(hù) 端 A客 戶(hù) 端 B服 務(wù) 器 : 監(jiān) 聽(tīng)局 域 網(wǎng)請(qǐng)求A請(qǐng)求B響應(yīng)B響應(yīng)A請(qǐng) 求 A響應(yīng)A響應(yīng)B請(qǐng)求B 圖 1 客戶(hù)端服務(wù)器模式 2.1.3 Socket 介紹 Socket 是建立 在傳輸層協(xié)議 (主要是 TCP 和 UDP)上的一種套接字規(guī)范,最初是由美國(guó)加州 Berkley 大學(xué)提出,它定義兩臺(tái)計(jì)算機(jī)間進(jìn)行通信的規(guī)范(也是一種編程規(guī)范),如果說(shuō)兩臺(tái)計(jì)算機(jī)是利用一個(gè) “通道” 進(jìn)行通信,那么這個(gè) “ 通道 ” 的兩端就是兩個(gè)套接字。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺(tái)安裝了 TCP 協(xié) 議軟件和實(shí)現(xiàn)了套接字規(guī)范的計(jì)算機(jī)之間的通信成為可能。 微軟的 Windows Socket 規(guī)范 (簡(jiǎn)稱(chēng) Winsock)對(duì) Berkley 的套接字規(guī)范進(jìn)行了擴(kuò)展,利用標(biāo)準(zhǔn)的 Socket 的方法,可以同任何平臺(tái)上的 Socket 進(jìn)行通信;利用其擴(kuò)展,可以更有效地實(shí)現(xiàn)在 Windows 平臺(tái)上計(jì)算機(jī)間的通信。 Socket 減輕了編寫(xiě)計(jì)算機(jī)間通信軟件的難度; 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 4 頁(yè) 共 22 頁(yè) 標(biāo) 準(zhǔn)的 Socket 的應(yīng)用程序框架如下: Server 方: Socket() 新建一個(gè) Socket Bind() 同服務(wù)器地址 綁 定 Listen() Accept() block wait read()接受消息,在 windows 平臺(tái)中,方法為 send(TCP),或者是 send to(UDP)處理服務(wù)請(qǐng)求 Write()發(fā)送消息 ,在 windows 平臺(tái)中,方法為 send(TCP), 或者為 send to(UDP)。 Client 方相對(duì)簡(jiǎn)單: Socket() Connect()通過(guò)一定的 port 連接特定的服務(wù)器,這是與服務(wù)器建立連接 Write() Read()。 Socket 可以是基于 TCP 的,也可以是基于 UDP,同時(shí) Socket 甚至建立在 其他的協(xié)議,比如 IPX/SPX, DECNet 等。在新建一個(gè) Socket 時(shí),可以指定新建何類(lèi)Socket。 Bind()用來(lái)同服務(wù)器的地址 綁定 ,如果一個(gè)主機(jī)只有一個(gè) IP 地址,實(shí)際上 綁 定的作用就相對(duì)多余了。 Listen()開(kāi)始監(jiān)聽(tīng)網(wǎng)絡(luò), Accept()用于接受連接,其返回值是保持同客戶(hù)機(jī)聯(lián)系的 Socket。 在 Delphi 中,其底層的 Socket 也應(yīng)該是 Windows 的 Socket。 Inprise 在 Delphi中對(duì) Windows Socket 進(jìn)行了有效的封裝,使得用戶(hù)可以很方便地編寫(xiě)網(wǎng)絡(luò)通信程序。 Socket 系 統(tǒng)調(diào)用包括創(chuàng)建 Socket、 將創(chuàng)建的 Socket 與本地端口綁定 、 建立Socket 連接服務(wù)器 、 監(jiān)聽(tīng)是否有連接 、 請(qǐng)求數(shù)據(jù)的可控緩沖發(fā)送 和 可控緩沖接收 ,到最后 關(guān)閉 Socket。 首先在服務(wù)器方,利用 socket()函數(shù)建立流式套接字,返回套接字號(hào) s,接著利用 bind()函數(shù)將套接字 s 與本地地址綁定,緊接著利用 listen()函數(shù)通知 TCP,監(jiān)聽(tīng)客戶(hù)方,服務(wù)器準(zhǔn)備接收連接,沒(méi)有連接的話(huà),服務(wù)器方通過(guò) closesocket()關(guān)閉套接字 s,服務(wù)結(jié)束。有連接的話(huà),在客戶(hù)方,通過(guò) socket()函數(shù)建立流式套接字 s,此時(shí) 在服務(wù)器方,建立連接,通過(guò) accept()返回,得到新的套接字 ns,客戶(hù)方通過(guò) connect()將套接字 s 與遠(yuǎn)程地址連接 ,此時(shí)服務(wù)器方 /客戶(hù)方在 ns/s 上讀 /寫(xiě)數(shù)據(jù),直到交換完成。交換完成后,服務(wù)器方 /客戶(hù)方關(guān)閉套接字 ns/s,最后服務(wù)器方通過(guò) closesocket()關(guān)閉最初套接字 s,服務(wù)結(jié)束。 具體流程如圖 2 所示: 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 5 頁(yè) 共 22 頁(yè) 服 務(wù) 器 方接 收 連 接 A c c e p t ( ) 等 待 客 服 端的 連 接 監(jiān) 聽(tīng) 連 接 請(qǐng) 求 l i s t e n ( )與 本 地 地 址 綁 定 b i n d ( )建 立 服 務(wù) 器 s e r v e r s o c k e t ( )建 立 連 接 C l i e n t C o n n e c t ( )接 收 / 發(fā) 送 數(shù) 據(jù) r e c v ( )/ s e n d ( )關(guān) 閉 連 接 c l o s e s o c k e t ( )關(guān) 閉 服 務(wù) 器客 戶(hù) 端 方建 立 客 戶(hù) 端 c l i e n t s o c k e t ( )與 遠(yuǎn) 程 地 址 連 接 c o n n e c t ( )R e m o t e A d d r e s s發(fā) 送 / 接 收 數(shù) 據(jù) s e n d ( ) / r e c v ( )關(guān) 閉 連 接 c l o s e s o c k e t ( ) 圖 2 面向連接的套接字的系統(tǒng)調(diào)用 流程 圖 2.2 系統(tǒng)需求分析 局域網(wǎng)聊天程序的實(shí)現(xiàn)主要為局域網(wǎng)內(nèi)的計(jì)算機(jī)提供交流的平臺(tái)。完成一個(gè)無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 6 頁(yè) 共 22 頁(yè) 基 于服務(wù)器和客戶(hù)端的局域網(wǎng)通訊軟件,類(lèi)似于聊天室,可進(jìn)行注冊(cè)、登錄、系統(tǒng)信息記錄、聊天等功能。用戶(hù)容易使用,便于管理。 2.3 系統(tǒng)設(shè)計(jì)目標(biāo) 局域網(wǎng)聊天程序的實(shí)現(xiàn),主要 為需要局域網(wǎng)內(nèi)聊天的用戶(hù)設(shè)計(jì)一個(gè)聊天平臺(tái); 本系統(tǒng)的目的是為了讓 局域網(wǎng)內(nèi)的計(jì)算機(jī)用戶(hù)如寢室、辦公室 能隨時(shí)隨地通過(guò)網(wǎng)絡(luò)進(jìn)行 交流。 局域網(wǎng)聊天程序 的設(shè)計(jì)目標(biāo)為一個(gè)高性能的,易于使用的,面向局域網(wǎng) 的 即時(shí)信息軟件。最終的 程序 應(yīng)具有如下功能 : 客戶(hù)端使用 簡(jiǎn)便, 服務(wù)器端運(yùn)行穩(wěn)定。客戶(hù)端與服務(wù)器端可運(yùn)行在多種 系統(tǒng)平臺(tái),具有良好的兼容性能。 客戶(hù)端與服務(wù)器端功 能獨(dú)立,可獨(dú)立運(yùn)行在不同的計(jì)算機(jī)上或運(yùn)行在同一臺(tái)計(jì)算機(jī)上 ,具有最大的靈活性。 能夠 進(jìn)行注冊(cè),設(shè)置自己的用戶(hù)名和密碼, 自動(dòng)更新其他用戶(hù)的名單。 選擇特定用戶(hù)并與其交談 ,還可以向在所有在線(xiàn)的用戶(hù)發(fā)送消息 。 服務(wù)器能夠記錄所有用戶(hù)的登錄、退出、注冊(cè)等系統(tǒng)消息。 2.4 系統(tǒng)運(yùn)行環(huán)境 硬件環(huán)境: CPU: Intel Pentium-M 725 1.6GHz 內(nèi)存: 512 MB 硬盤(pán): 60 G 軟件環(huán)境: 操作系統(tǒng): Microsoft Windows XP Professional 應(yīng)用軟件: Delphi 7.0 + Database Desktop 2.5 系統(tǒng)開(kāi)發(fā)環(huán)境 本系統(tǒng)開(kāi)發(fā)環(huán)境采用 Borland 公司新推出的 Delphi7.0 Delphi 是全新的可視化編程環(huán)境 ,為我們提供了一種方便、快捷的 Windows應(yīng)用程序開(kāi)發(fā)工具。它使用了 Microsoft Windows 圖形用戶(hù)界面的許多先進(jìn)特性和設(shè)計(jì)思想 ,采用了彈性可重復(fù)利用的完整的面向?qū)ο蟪绦蛘Z(yǔ)言 (Object-Oriented Language)、當(dāng)今世界上最快的編輯器、最為領(lǐng)先的數(shù)據(jù)庫(kù)技術(shù)。對(duì)于廣大的程序開(kāi)發(fā)人員來(lái)講 ,使用 Delphi 開(kāi)發(fā)應(yīng)用軟件 ,無(wú)疑會(huì)大大地 提高編程效率 ,而且隨著應(yīng)用的深入 ,您將會(huì)發(fā)現(xiàn)編程不再是枯燥無(wú)味的工作 Delphi 的每一個(gè)設(shè)計(jì)細(xì)節(jié) ,都將帶給您一份欣喜 。 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 7 頁(yè) 共 22 頁(yè) 3 局域網(wǎng)聊天程序系統(tǒng)設(shè)計(jì) 3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)采用 C/S 結(jié)構(gòu), 最重要的特點(diǎn)是非對(duì)等相互作用 ,即客戶(hù)與服務(wù)器處于不平等的地位 ,服務(wù)器擁有客戶(hù)所不具備的硬軟件資源 ,客戶(hù)和服務(wù)器分別是服務(wù)的請(qǐng)求者和提供者。網(wǎng)絡(luò)中各個(gè)機(jī)器的資源是不平等的 ,網(wǎng)絡(luò)的真正目的就是共享這些不均 等資源 源 ,非對(duì)等相互作用特點(diǎn)也正好體現(xiàn)和適應(yīng)了客觀(guān)現(xiàn)實(shí)中資源的不均等現(xiàn)象。 局域網(wǎng) 上不同主機(jī)進(jìn)程間通信完全是異步的 ,通 信時(shí)機(jī)具有隨機(jī)性 ,所以必須 用這種 為通信雙方的數(shù)據(jù)交換提供同步的機(jī)制 。 3.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 局域網(wǎng)聊天程序的 數(shù)據(jù)庫(kù)設(shè)計(jì) (Database Design)把系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來(lái),提供存儲(chǔ)、維護(hù)、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時(shí)、準(zhǔn)確地從數(shù)據(jù)庫(kù)中獲得所需的信息。 設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)該具備數(shù)據(jù)庫(kù)的基本知識(shí)和數(shù)據(jù)庫(kù)設(shè)計(jì)技術(shù) , 計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí)和程序設(shè)計(jì)的方法和技巧 及 軟件工程的原理和方法應(yīng)用領(lǐng)域的知識(shí) 。 根據(jù) 局域網(wǎng)聊天程序系統(tǒng) 的一般要求,通過(guò)對(duì)整個(gè)系統(tǒng)運(yùn)行過(guò)程和數(shù)據(jù)流程分析,得出本系統(tǒng)的實(shí)體表:用戶(hù) 基本信息表。本系統(tǒng)設(shè)計(jì)了一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)包括 username 和 password 兩個(gè)字段。用戶(hù)基本信息表如表 1: 表 1 用戶(hù)基本信息表: DB_USER 中文名稱(chēng) 字段名 類(lèi)型 長(zhǎng)度 是否允許空 備注 用戶(hù)名 username nvarchar 10 not null PK 密碼 password nvarchar 100 not null 3.3 客戶(hù)端服務(wù)器功能設(shè)計(jì) 客戶(hù)端主要功能有用戶(hù)注冊(cè)、用戶(hù)登錄、在線(xiàn)用戶(hù)列表、消息收發(fā)模塊。而消息收發(fā)模塊又分為公聊和私聊兩種??蛻?hù)端的功能模塊如圖 3 所示; 局 域 網(wǎng) 聊 天 程 序 客 戶(hù) 端在 線(xiàn) 用 戶(hù) 列 表用 戶(hù) 登 錄用 戶(hù) 注 冊(cè)消 息 收 發(fā) 圖 3 客戶(hù)端功能模塊圖 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 8 頁(yè) 共 22 頁(yè) 服務(wù)器主要功能有消息處理、系統(tǒng)消息、在線(xiàn)用戶(hù)列表、監(jiān)聽(tīng)狀態(tài)控制,如圖 4 所示 : 局 域 網(wǎng) 聊 天 程 序 服 務(wù) 器監(jiān) 聽(tīng) 狀 態(tài) 控 制在 線(xiàn) 用 戶(hù) 列 表系 統(tǒng) 消 息消 息 處 理 圖 4 服務(wù)器功能模塊圖 3.4 客戶(hù)端設(shè)計(jì) 客戶(hù)端設(shè)計(jì)時(shí)以用戶(hù)使用為出發(fā)點(diǎn),功能分登錄、注冊(cè)、輸入服務(wù)器 IP、聊天、用戶(hù)列表和關(guān)于這幾個(gè)詳細(xì)模塊。 首先設(shè)計(jì)一個(gè)連接模塊,即輸入服務(wù)器 IP 后看能否連接到服務(wù)器,要能先連接到服務(wù)器才能再進(jìn)行登錄注冊(cè)等操作,這樣做可以讓用戶(hù)知道服務(wù)器是否在運(yùn)行。連接 到服務(wù)器后,進(jìn)行注冊(cè),登錄時(shí)系統(tǒng)要能根據(jù)用戶(hù)輸入的用戶(hù)名和密碼判斷該用戶(hù)是否為合法用戶(hù);如果用戶(hù)輸入的用戶(hù)名或密碼錯(cuò)誤,系統(tǒng)將給出相應(yīng)的提示,并要求用戶(hù)進(jìn)行注冊(cè)或重新登錄;如果用戶(hù)輸入的用戶(hù)名和密碼正確,可進(jìn)行聊天操作。這里需要說(shuō)明的是,在連接到服務(wù)器、登錄、注冊(cè)等程序沒(méi)有完成時(shí)聊天模塊和用戶(hù)列表模塊設(shè)計(jì)成非激活狀態(tài),登錄成功后再激活這兩個(gè)模塊。用戶(hù)列表只是顯示在線(xiàn)用戶(hù),當(dāng)有新用戶(hù)上線(xiàn)時(shí)用戶(hù)列表動(dòng)態(tài)刷新。具體流程圖如圖 5 所示: 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 9 頁(yè) 共 22 頁(yè) 開(kāi) 始連 接 到 服 務(wù) 器登 錄獲 得 在 線(xiàn) 用 戶(hù)列 表聊 天斷 開(kāi) 連 接登 錄 界 面有 新 用 戶(hù) 上 線(xiàn)刷 新 用 戶(hù) 列 表退 出 程 序成 功失 敗提 示 用 戶(hù) 進(jìn) 行注 冊(cè)注 冊(cè) 圖 5 客戶(hù)端系統(tǒng)流 程圖 3.5 服務(wù)器端設(shè)計(jì) 服務(wù)器端分為監(jiān)聽(tīng)控制、系統(tǒng)信息欄、及時(shí)狀態(tài)顯示和用戶(hù)列表幾個(gè)詳細(xì)模塊。服務(wù)器運(yùn)行時(shí)要能對(duì)監(jiān)聽(tīng)狀態(tài)進(jìn)行控制,可以在不退出程序的情況下關(guān)閉服務(wù)器。服務(wù)器設(shè)計(jì)一個(gè)系統(tǒng)信息欄,記錄服務(wù)器的各種狀態(tài)變化和用戶(hù)的登錄、注冊(cè)、下線(xiàn)、客戶(hù)端的連接等信息,方便管理員進(jìn)行管理。服務(wù)器同樣設(shè)計(jì)一個(gè)可以動(dòng)態(tài)刷新的在線(xiàn)用戶(hù)列表,管理員可以看到當(dāng)前的用戶(hù)在線(xiàn)情況。具體流程圖如圖 6 所示: 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 10 頁(yè) 共 22 頁(yè) 開(kāi) 始處 于 監(jiān) 聽(tīng) 狀 態(tài)檢 測(cè) 到 客 戶(hù) 端連 接 到 服 務(wù) 器關(guān) 閉 服 務(wù) 器退 出 程 序在 線(xiàn) 用 戶(hù) 列 表 刷 新 ,系 統(tǒng) 信 息 欄 顯 示 系 統(tǒng) 信 息登 錄成 功提 示 用 戶(hù) 重 新 登 錄失 敗 圖 6 服務(wù)器端系統(tǒng)流程圖 3.6 聊天中公聊和私聊的設(shè)計(jì) 聊 天時(shí)可以向在線(xiàn)用戶(hù)中其中一個(gè)發(fā)送消息也可以向所有在線(xiàn)用戶(hù)發(fā)送消息。每個(gè)在線(xiàn)用戶(hù)都和服務(wù)器建立了一個(gè)獨(dú)立的連接,如果其中一個(gè)用戶(hù) A 向用戶(hù) B 發(fā)送消息 a,工作原理是:用戶(hù)先把消息 a 發(fā)給服務(wù)器,服務(wù)器在把此消息發(fā)給用戶(hù) B;如果用戶(hù) A 向所有在線(xiàn)用戶(hù)發(fā)送消息 b,工作原理是:用戶(hù)先把消息 b 發(fā)給服務(wù)器,服務(wù)器再把此消息發(fā)給所有在線(xiàn)用戶(hù)。如圖 7 所示: 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 11 頁(yè) 共 22 頁(yè) 服 務(wù) 器在 線(xiàn) 用 戶(hù) B在 線(xiàn) 用 戶(hù) A 在 線(xiàn) 用 戶(hù) C在 線(xiàn) 用 戶(hù) D消 息 a ( 私 聊 )消 息 b ( 公 聊 )消 息 b消息a消息b消息b 圖 7 公聊私聊的處理 3.7 界面設(shè)計(jì) 3.7.1 客戶(hù)端界面設(shè)計(jì) 通過(guò)初步規(guī)劃,客戶(hù)端的界面應(yīng)該包括以下內(nèi)容: IP 輸入欄、用戶(hù)登錄欄、用戶(hù)注冊(cè)欄、用戶(hù)列表欄、聊天記錄顯示欄、聊天信息輸入欄和關(guān)于對(duì)話(huà)框。 總體思想是上下,下分兩欄,使用框架做布局,此方法可以使整個(gè)系統(tǒng)更加符合信息空間的信息存儲(chǔ),運(yùn)行速度更快,信息層次更加清晰,用戶(hù)操作則更方便,更有條理。 整體界面的設(shè)計(jì)的下欄為聊天區(qū),下欄右邊為用戶(hù)列表,左邊為聊天記錄和登錄信息的顯示欄,下方為聊天記錄輸入框,注冊(cè)和關(guān)于為彈出對(duì)話(huà)框。示意圖如圖 8、圖 9、圖 10: 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 12 頁(yè) 共 22 頁(yè) 圖 8 客戶(hù)端界面設(shè)計(jì) 圖 9 注冊(cè)欄設(shè)計(jì) 圖 10 關(guān)于對(duì)話(huà)框設(shè)計(jì) 3.7.2 服務(wù)器界面設(shè)計(jì) 客戶(hù)端 的界面應(yīng)該包括以下內(nèi)容:服務(wù)器監(jiān)聽(tīng)狀態(tài)控制欄、在線(xiàn)用戶(hù)列表欄、無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 13 頁(yè) 共 22 頁(yè) 系統(tǒng)信息欄和關(guān)于對(duì)話(huà)框,如圖 11 所示: 局 域 網(wǎng) 聊 天 程 序 服 務(wù) 器幫 助 信 息用 戶(hù) 列 表服 務(wù) 器 監(jiān) 聽(tīng) 狀 態(tài) 控 制 欄用 戶(hù) 注 冊(cè) 欄 圖 11 服務(wù)器功能圖 整體界面的設(shè)計(jì)同樣為上下分開(kāi)布局,下欄為服務(wù)器監(jiān)聽(tīng)狀態(tài)控制欄,通過(guò)點(diǎn)擊右邊用戶(hù)列表欄的用戶(hù)來(lái)完成用戶(hù)的選擇。上欄為用戶(hù)列表和系統(tǒng)信息欄,注冊(cè)為彈出對(duì)話(huà)框,同客戶(hù)端一樣,示意圖略。示意圖如圖 12: 圖 12 服務(wù)器界面設(shè)計(jì) 4 系統(tǒng)實(shí)現(xiàn)及核心代碼 4.1 網(wǎng)絡(luò)通信核心代碼 begin if not serversocket1.Active then begin serversocket1.Active:=true; /如果 serversocket 沒(méi)有激活則激活它 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 14 頁(yè) 共 22 頁(yè) memo1.Lines.Add(服務(wù)器連接! +Datetimetostr(now)+); /狀態(tài)欄顯示服務(wù)器當(dāng)前時(shí)間狀態(tài) end else showmessage(已經(jīng)在監(jiān)聽(tīng)狀態(tài) ); end; /點(diǎn)擊監(jiān)聽(tīng)按鈕時(shí)服務(wù)器開(kāi)始監(jiān)聽(tīng)請(qǐng)求 begin clientip:=socket.RemoteAddress end; /客戶(hù)端的 IP 地址 procedure TForm1.ServerSocket1Listen(Sender: TObject;Socket: TCustomWinSocket); begin statusbar1.SimpleText:=監(jiān)聽(tīng)狀態(tài) .; counter:=0; end; /服務(wù)器處于監(jiān)聽(tīng)狀態(tài)時(shí)狀態(tài)欄顯示“監(jiān)聽(tīng)狀態(tài) ” begin tmptext := socket.ReceiveText; if pos(%&%&%&,tmptext)0 then / 當(dāng)服務(wù)器收到的 text 中有 %&%&%&字符串時(shí)表示私聊 begin tmptext := copy(tmptext,1,length(tmptext)-6); signpos:= pos(&,tmptext); chattext:= copy(tmptext,1,signpos-1); member:=copy(tmptext, signpos+2,pos($,tmptext)-2-signpos); usename:=copy(tmptext,pos($,tmptext)+2,length(tmptext)-pos($,tmptext)+2); /從 text 中分別提取聊天信息,發(fā)送人,接收人等相關(guān)信息 for i:=0 to counter-1 do begin if member=chatnamei then begin serversocket1.Socket.Connectionsi.SendText(usename+對(duì)你說(shuō): +chattext); break; /發(fā)送聊天信息給接收人 end; end; 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 15 頁(yè) 共 22 頁(yè) end else / 當(dāng)無(wú)任何標(biāo)記時(shí)表示公聊 begin for i:=0 to counter-1 do serversocket1.Socket.Connectionsi.SendText(tmptext); /對(duì)所有人發(fā)送信息 end; end; 以上是聊天部分的代碼,服務(wù)器通過(guò)特殊的字符串來(lái)區(qū)分公聊和私聊,當(dāng)有%&%&%&字符串時(shí)表示私聊;當(dāng)無(wú)任何標(biāo)記時(shí)表示公聊。 4.2 用戶(hù)注冊(cè)登錄下線(xiàn)模塊功能代碼 if pos($%$%$%,tmptext)0 then / 當(dāng)有 $%$%$%表示有登陸信息 begin tmptext := copy(tmptext,1,length(tmptext)-6); chatnamecounter:=tmptext; listbox1.Items.add(tmptext); /用戶(hù)列表添加新登錄的用戶(hù) check :=(table1.lookup(usename,tmptext,password); socket.SendText(check+#$%&); memo1.Lines.Add(用戶(hù) +tmptext+上線(xiàn)了。 ); if counter0 then begin for i:=0 to counter-1 do begin serversocket1.Socket.Connectionscounter.SendText (chatnamei+()&*%); serverSocket1.Socket.Connectionsi.SendText(tmptext+()&*%); sleep(300); end; end; inc(counter); end else if pos(?*#,tmptext)0 then /當(dāng)有 ?*#字符串表示注冊(cè)信息 begin 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 16 頁(yè) 共 22 頁(yè) signpos:=pos(?*#,tmptext); member:=copy(tmptext,1,signpos-1); chattext:=copy(tmptext,signpos+6,length(tmptext)-6-length(member); with table1 do begin if table1.FindField(usename).AsString=member then socket.SendText(用戶(hù)名已經(jīng)有人用了,請(qǐng)檢查后重新注冊(cè)。 ) else /注冊(cè)時(shí)進(jìn)行用戶(hù)名驗(yàn)證 begin insertrecord(member,chattext); memo1.Lines.Add(新用戶(hù): +member+注冊(cè)成功! ); socket.SendText(注冊(cè)成功,請(qǐng)先登陸再進(jìn)行聊天! ); end; /注冊(cè)成功后提示 end; end else if pos(*&%#),tmptext)0 then / 當(dāng)有 *&%#)字符 串表示有人下線(xiàn)了 begin tmptext:=copy(tmptext,1,length(tmptext)-8); memo1.Lines.Add(用戶(hù) +tmptext+下線(xiàn)了。 ); for i:=0 to counter-1 do serversocket1.Socket.Connectionsi.SendText(tmptext+$%#$); for i:=listbox1.items.Count downto 1 do if listbox1.Items.Stringsi-1=tmptext then begin listbox1.Items.Delete(i-1); /從用戶(hù)列表中去除下線(xiàn)的用戶(hù) dec(counter); end; end 客戶(hù)端與服務(wù)器進(jìn)行通信時(shí)同樣是通過(guò)附加不同的特殊字符串來(lái)讓服務(wù)器區(qū)分登錄、注冊(cè)、下線(xiàn)等信息,當(dāng)有 *&%#)字符串表示有人下線(xiàn)了,listbox1.Items.Delete(i-1);表示從用戶(hù)列表中刪除下線(xiàn)的用戶(hù) ;當(dāng)有 ?*#字符串表示注冊(cè)信息;當(dāng)有 $%$%$%表示有登陸信息。 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 17 頁(yè) 共 22 頁(yè) 5 系統(tǒng) 測(cè)試 5.1 測(cè)試方法 ( 1)運(yùn)行服務(wù)器,看能否對(duì)服務(wù)器的監(jiān)聽(tīng)狀態(tài)進(jìn)行管理,開(kāi)關(guān)服務(wù)器看系統(tǒng)信息欄有沒(méi)有相關(guān)記錄。 ( 2)運(yùn)行客戶(hù)端,輸入服務(wù)器的 ip 地址,測(cè)試看能否連接到服務(wù)器。 ( 3)客戶(hù)端連接到服務(wù)器后,進(jìn)行注冊(cè),注冊(cè)成功后看能否成功登錄,登錄后看聊天模塊是否激活。 ( 4)注冊(cè)若干個(gè)用戶(hù)進(jìn)行登錄,看服務(wù)器 和客戶(hù)端的在線(xiàn)戶(hù)列表是否刷新和同步。 ( 5)看能否進(jìn)行聊天,公聊和私聊能否正常進(jìn)行。 ( 6)看服務(wù)器的系統(tǒng)信息欄是否記錄了客戶(hù)端的連接,用戶(hù)的注冊(cè)、登錄、下線(xiàn)等信息。 5.2 測(cè)試結(jié)果 ( 1)服務(wù)器能夠正常運(yùn)行,能夠?qū)Ψ?wù)器的監(jiān)聽(tīng)狀態(tài)進(jìn)行管理,并且系統(tǒng)信息欄有相關(guān)記錄。 ( 2)客戶(hù)端能夠連接到服務(wù)器,并能夠進(jìn)行注冊(cè)和登錄 ( 3)在有新用戶(hù)登錄時(shí),用戶(hù)列表動(dòng)態(tài)刷新 ( 4)聊天功能可以正常進(jìn)行 ( 5)服務(wù)器系統(tǒng)信息欄記錄了用戶(hù)的注冊(cè)、登錄、下線(xiàn)等相關(guān)信息 5.3 測(cè)試結(jié)論 以上的測(cè)試案例是單獨(dú)進(jìn)行測(cè)試的,還需要 進(jìn)一步的交叉案例測(cè)試。通過(guò)以上簡(jiǎn)單測(cè)試說(shuō)明了設(shè)計(jì)方法的正確性,它已經(jīng)初步具備了局域網(wǎng)聊天程序的基本框架,具有良好的檢測(cè)性能和準(zhǔn)確的檢測(cè)結(jié)果。但系統(tǒng)構(gòu)架和代碼設(shè)計(jì)還需要進(jìn)一步優(yōu)化,以提高系統(tǒng)的運(yùn)行效率,降低所耗的系統(tǒng)資源,為用戶(hù)提供更好的服務(wù)。 無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 18 頁(yè) 共 22 頁(yè) 5.4 程序運(yùn)行截圖 圖 13 服務(wù)器運(yùn)行界面 圖 14 客戶(hù)端運(yùn)行界面 結(jié) 論 經(jīng)過(guò)了 3 個(gè)月的忙碌,局域網(wǎng)聊天程序基本開(kāi)發(fā)完畢。其功能基本符合用戶(hù)需求。從解決不了細(xì)小問(wèn)題的苦惱到問(wèn)題最終解決的喜悅,一直伴隨著整個(gè)設(shè)計(jì)過(guò)程。整個(gè)設(shè)計(jì)過(guò)程是不斷學(xué)習(xí),不斷 發(fā)現(xiàn)問(wèn)題、分析問(wèn)題、解決問(wèn)題的過(guò)程。使我受益良多。設(shè)計(jì)期間有許多的感觸、想法、經(jīng)驗(yàn),教訓(xùn),對(duì)以后的學(xué)習(xí)、工無(wú)憂(yōu)無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 第 19 頁(yè) 共 22 頁(yè) 作有很大的益處。 另外,在使用參考書(shū)籍的過(guò)程中,有很多的精湛的細(xì)節(jié)值得認(rèn)真學(xué)習(xí)和領(lǐng)悟。 本設(shè)計(jì)在查閱了大量的文獻(xiàn)后進(jìn)行理論研究的同時(shí),借鑒了其他聊天程序的優(yōu)缺點(diǎn),在此基礎(chǔ)上展開(kāi)了研究工作,歸納起來(lái),論文取得的成果和創(chuàng)新點(diǎn)主要有以下幾個(gè)方面: 通過(guò)網(wǎng)絡(luò)編程,設(shè)計(jì)了基本的聊天功能和登錄注冊(cè)功能。 對(duì)典型的 C/S 結(jié)構(gòu)有了基本了解。 將數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)編程相結(jié)合,利用 DELPHI7.0 這一軟件進(jìn)行編程,將在大學(xué)里學(xué)到 的知識(shí)進(jìn)行了很好的綜合。 利用 TCP/IP 協(xié)議中的 TCP 協(xié)議,即面向連接的服務(wù),進(jìn)行數(shù)據(jù)的傳輸,對(duì)網(wǎng)絡(luò)中數(shù)據(jù)的傳輸過(guò)程進(jìn)行了認(rèn)真的分析。 至 此,一個(gè)基于 TCP/IP 協(xié)議的 局域網(wǎng) 聊天室就完成了。在局域網(wǎng)內(nèi)運(yùn)行該程序并進(jìn)行設(shè)置,即可自由的聊天了。當(dāng)然,由于時(shí)間緊迫,所設(shè)計(jì)的軟件難免有不足之處,敬請(qǐng)各位評(píng)委老師指導(dǎo)。 在 使 用 Delphi 7.0 制作基于 Socket 的局域網(wǎng)聊天室時(shí),我們一般不需要直接進(jìn)行套接字編程。 Delphi 帶有大量完成專(zhuān)門(mén)網(wǎng)絡(luò)連接功能的部件,使用這些部件完全可以滿(mǎn)足我們大多數(shù)編程的需要。由于 Delphi 封裝 了 WindowsSocketAPI,使得我們?cè)?Delphi 環(huán)境下編寫(xiě) WindowsSocket 程序變得非常輕松。聊天室的制作是件煩瑣而有挑戰(zhàn)性的工作,涉及面廣,與實(shí)踐教學(xué)環(huán)節(jié)密不可分,與課程內(nèi)容密切相關(guān),要多參考用其他語(yǔ)言是如何制作聊天室的,多搜集一點(diǎn)網(wǎng)上的資料。 由于時(shí)間和個(gè)人水平的有限,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手工具產(chǎn)品安全性與風(fēng)險(xiǎn)評(píng)估考核試卷
- 船舶拆除工程進(jìn)度控制與調(diào)度管理考核試卷
- 沿海貨物運(yùn)輸協(xié)同發(fā)展考核試卷
- 油氣田開(kāi)發(fā)過(guò)程中的節(jié)能減排措施考核試卷
- 橡膠在電子設(shè)備散熱中的應(yīng)用考核試卷
- 電力系統(tǒng)穩(wěn)定性分析與優(yōu)化控制考核試卷
- 稀土金屬礦選礦廠(chǎng)工藝參數(shù)優(yōu)化與調(diào)整考核試卷
- 航天器地面模擬試驗(yàn)與測(cè)試考核試卷
- 海外度假別墅租賃及海外旅游服務(wù)合同
- 海上石油作業(yè)平臺(tái)應(yīng)急通信設(shè)施租賃與安全保障服務(wù)協(xié)議
- MOOC 現(xiàn)代郵政英語(yǔ)(English for Modern Postal Service)-南京郵電大學(xué) 中國(guó)大學(xué)慕課答案
- 生命科學(xué)導(dǎo)論(中國(guó)農(nóng)業(yè)大學(xué))智慧樹(shù)知到期末考試答案2024年
- 2024年遼寧省大連理工附中中考物理模擬試卷
- 橋梁減隔震裝置技術(shù)條件
- 施工環(huán)境保護(hù)培訓(xùn)課件
- 化工廠(chǎng)節(jié)能降耗措施
- 電力預(yù)防性試驗(yàn)課件
- 三廢環(huán)保管理培訓(xùn)
- 基于MATLAB的電流、電壓互感器特性的仿真分析
- 操作系統(tǒng)課程設(shè)計(jì)報(bào)告
- 《臨床研究注冊(cè)》課件
評(píng)論
0/150
提交評(píng)論