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

正文內(nèi)容

基于cs模式的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-wenkub

2023-03-09 09:17:56 本頁(yè)面
 

【正文】 and Implementation of Chat System based on C/S model 【 Abstract】 Along with the fast development of Inter, work chat has bee indispensable to People39。 國(guó)內(nèi)外現(xiàn)狀 Java 是 Sun 公司開(kāi)發(fā)的一種面向?qū)ο蟮男乱淮W(wǎng)絡(luò)編程語(yǔ)言。 Java 語(yǔ)言的特性使它可以最大程度的利用網(wǎng)絡(luò)。作為電信運(yùn)營(yíng)商的中國(guó)電信和中國(guó)網(wǎng)通也動(dòng)作頻頻。 雖然目前絕大多數(shù)互聯(lián)網(wǎng) 用戶都同時(shí)為即時(shí)通信用戶但是隨著互聯(lián)網(wǎng)尤其是寬帶用戶數(shù)的迅速增長(zhǎng),未來(lái)若干年內(nèi),中國(guó)即時(shí)通信用戶數(shù)量還會(huì)猛增。于是就想到做一個(gè)在局域網(wǎng)里的多功能聊天軟件,在局域網(wǎng)里,我們可以通過(guò)它,實(shí)現(xiàn)在局域網(wǎng)里方便的聯(lián)絡(luò),進(jìn)行文件傳輸,消息的發(fā)布,音頻聊天,視頻聊天等。考慮到要可以在局域網(wǎng)中應(yīng)用,本系統(tǒng)使用的是第二種方法,經(jīng)過(guò)設(shè)置,在局域 網(wǎng)或 inter 上都可以使用。 可行性分析 1)經(jīng)濟(jì)可行性: 本系統(tǒng)需要一個(gè) MySQL 數(shù)據(jù)庫(kù),由于使用人數(shù)比較少,安裝一個(gè)免費(fèi)的 MySQL 數(shù)據(jù)庫(kù)完全滿足需要,所以成本就不用考慮了。由于本人長(zhǎng)期從事于 java語(yǔ)言編程,所以技術(shù)方面是可行的。 2)登陸 在客戶端,用戶輸入其號(hào)碼和密碼,然后建立與服務(wù)器的連接,告訴服務(wù)器我要登錄,服務(wù)器收到后,開(kāi)始通過(guò) JDBCODBC 讀取數(shù)據(jù)庫(kù),然后與用戶輸入的信息比較,如果成功,便打開(kāi)主程序窗口。例如服務(wù)器接收到一個(gè) A 發(fā)給 B的消息,先判斷 B是否已經(jīng)在線,如果 4 在線就將信息發(fā)送過(guò)去。唯一的不同就是服務(wù)器會(huì)將信息轉(zhuǎn)發(fā)給指定群的所有成員。如果成功,則返回這個(gè)分組的信息給客戶端,否則返回錯(cuò)誤提示信息。如果成功,則返回這個(gè)群的信息給客戶端,否則返回錯(cuò)誤提示信息。 8)查找群并加入群 輸入要查找的群 ID號(hào),客戶端發(fā)送一個(gè)查詢信息給服務(wù)器端,如果找到就返回用戶服務(wù)信息。好友將無(wú)法下看到這些共享的文件。如果其中 之一配置不好,文件下載將會(huì)失敗。 群 信 息:群信息應(yīng)包含群 ID、用戶 ID、創(chuàng)建人、群名字等。 對(duì)齊 保持頁(yè)面內(nèi)元素對(duì)齊方式的一致,如無(wú)特殊情況應(yīng)避免同一頁(yè)面出現(xiàn)多種數(shù)據(jù)對(duì)齊方式。 準(zhǔn)確性原則 使用一致的標(biāo)記、標(biāo)準(zhǔn)縮寫(xiě)和顏色,顯示信息的含義應(yīng)該非常明確,用戶不必再參考其它信息源。 使用用戶語(yǔ)言詞匯,而不是單純的專業(yè)計(jì)算機(jī)術(shù)語(yǔ)。多做“減法”運(yùn)算,將不常用的功能區(qū)塊隱藏,以保持界面的簡(jiǎn)潔,使用戶專注于主要業(yè)務(wù)操作流程,有利于提高軟件的易用性及可用性。 功能 未完成功能必須隱藏處理,不要置于頁(yè)面內(nèi)容中,以免引起誤會(huì)。 頁(yè)面導(dǎo)航(面包屑導(dǎo)航) 在頁(yè)面顯眼位置應(yīng)該出 現(xiàn)面包屑導(dǎo)航欄,讓用戶知道當(dāng)前所在頁(yè)面的位置,并明確導(dǎo)航結(jié)構(gòu),如:首頁(yè) 新聞中心 服務(wù)平臺(tái)正式發(fā)布,其中帶下劃線部分為可點(diǎn)擊鏈接。 查詢檢索類(lèi)頁(yè)面,在查詢條件輸入 框內(nèi)按回車(chē)應(yīng)該自動(dòng)觸發(fā)查詢操作。 表單錄入頁(yè)面,需要把輸入焦點(diǎn)定位到第一個(gè)輸入項(xiàng)。例如,稱數(shù)據(jù)庫(kù)是一個(gè)“記錄保存系統(tǒng)” (該定義強(qiáng)調(diào)了數(shù)據(jù)庫(kù)是若干記錄的集合 )。嚴(yán)格地說(shuō),數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)”。對(duì)于一些大型和中型的數(shù)據(jù)庫(kù),如 Oracle, SQL Server 2021/ 等都屬于關(guān)系型數(shù)據(jù)庫(kù),同時(shí)它們所帶有的數(shù)據(jù)庫(kù)管理工具是其他小型數(shù)據(jù)庫(kù)所沒(méi)有的,而同時(shí)這些工具又為管理員的工作節(jié)省了很多的時(shí)間和財(cái)力。 數(shù)據(jù)庫(kù)表的描述 概念模型是對(duì)信息世界建模,其表示方法有很多,其中最為常用的是實(shí)體-聯(lián)系模型,即 E- R模型,它是用 E- R圖來(lái)描述現(xiàn)實(shí)世界的概念模型。我的系統(tǒng)選擇 Java 語(yǔ)言開(kāi)發(fā),其原因基于以下幾點(diǎn): Java 是一種簡(jiǎn)單的、面向?qū)ο蟮摹⒎植际降?、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動(dòng)態(tài)的語(yǔ)言。 Java 語(yǔ)言的設(shè)計(jì)完全是面向?qū)ο蟮摹? 4)健壯 Java 致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。一方面,在 Java 語(yǔ)言里,像指針和釋放內(nèi)存等 C++功能被刪除,避免了非法內(nèi)存操作。 Java 源程序被編譯成一種高層次的與機(jī)器無(wú)關(guān)的 bytecode 格式語(yǔ)言,這種語(yǔ)言被設(shè)計(jì)在 虛擬機(jī)上運(yùn)行,由機(jī)器相關(guān)的運(yùn)行調(diào)試器實(shí)現(xiàn)執(zhí)行。 8)高性能 Java 可以在運(yùn)行時(shí)直接將目標(biāo)代碼 翻譯成機(jī)器指令。線程,有時(shí)也稱小進(jìn)程,是一個(gè)大進(jìn)程里分出來(lái)的小的獨(dú)立的進(jìn)程。 MVC 設(shè)計(jì)模式 MVC 是 ModelViewController 的簡(jiǎn)稱,它是一種設(shè)計(jì)模式,它把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖、控制器,它們各自處理自己的任務(wù)。并同時(shí)將用戶要求告 知控制器( Controller)。當(dāng) Web 用戶單擊 Web頁(yè)面中的遞交按鈕來(lái)發(fā)送 HTML 表單時(shí),控制器本身不輸出任何東西和做任何處理。在一個(gè) Web 應(yīng)用程序中,它們的表現(xiàn)形式可能是一些來(lái)自客戶端的 GET 或POST 的 HTTP 請(qǐng)求。同一個(gè)模型可以被不同的視圖重用,大大提高了代碼的可重用性。 MVC 處理過(guò)程的結(jié)構(gòu)圖: 15 多線程簡(jiǎn)介 線程是指進(jìn)程中單一順序的控制流 ,又稱為輕量級(jí)進(jìn)程。線程使得在一個(gè)應(yīng)用程序中 , 程序的編寫(xiě)更加自由和豐富。 SQL 通常使用于數(shù)據(jù)庫(kù)的通訊。雖然絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)使用 SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。 SQL允許用戶在高層的數(shù) 據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有 SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類(lèi)操作提供單 獨(dú)的語(yǔ)言,而 SQL 將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。 TCP/IP 協(xié)議 (1)IP、 TCP 協(xié)議的特點(diǎn): TCP/IP( Transmission Control Protocol/Inter Protocol)是傳輸控制協(xié)議 /網(wǎng)際協(xié)議的縮寫(xiě) , TCP/IP 是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒(méi)有差錯(cuò)校驗(yàn)和處理的機(jī)制。 統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個(gè) TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的 IP地址。在實(shí)現(xiàn) TCP的主機(jī)上, TCP 可以被看成是一個(gè)模塊,和文 17 件系統(tǒng)區(qū)別不大, TCP 也可以調(diào)用 一些操作系統(tǒng)的功能, TCP 不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門(mén)的設(shè)備驅(qū)動(dòng)模塊完成。在數(shù)據(jù)傳輸過(guò)程中,各種服務(wù)器不斷的檢測(cè)分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端。流式套接字定義了一種面向 連接的服務(wù) ,實(shí)現(xiàn)了無(wú)差錯(cuò)無(wú)重復(fù)的順序數(shù)據(jù)傳輸 ,無(wú)長(zhǎng)度限制。服務(wù)器也通過(guò)它的本地端口連接一個(gè) socket,通過(guò)讀寫(xiě)和客戶端通信。 具體調(diào)用流程如下: 開(kāi)發(fā)環(huán)境 操 作系統(tǒng): WINDOWS 7; 開(kāi)發(fā)工具: Eclipse 數(shù)據(jù)庫(kù): MySQL 5. 服務(wù)器: Tomcat 支持軟件: CPU:酷睿 2 雙核 T5750 硬件環(huán)境: 2G內(nèi)存 19 第五章 系統(tǒng)實(shí)現(xiàn) 總體設(shè)計(jì) 聊天系統(tǒng)的總體設(shè)計(jì)要點(diǎn) 聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如,普通網(wǎng)站需要對(duì)布局進(jìn)入大量美化以及動(dòng)畫(huà)設(shè)計(jì)等等,而聊天系統(tǒng)只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可。如果有客戶端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空 Socket,將客戶端地址賦給這個(gè) Socket。 文件傳輸系統(tǒng)的功能主要有: 1)共享文件; 2)查看并下載文件。注冊(cè)流程如下:用戶提出注冊(cè)請(qǐng)求,客 戶端響應(yīng),彈出注冊(cè)信息對(duì)話框,用戶輸入相關(guān)信息并提交,客戶端首先進(jìn)行合法檢查,確定無(wú)誤后將數(shù)據(jù)信息發(fā)送給服務(wù)器端。 import 。 ServerSocket sendserversocket = new ServerSocket(7777)。 ServerThread st = new ServerThread(acceptsocket,sendsocket)。 } } } 23 注冊(cè)代碼: package 。 import 。 import 。 import 。 private JButton loginButton = null。 private JLabel promptLabel = null。 private Socket socketaccept。 //坐標(biāo) y public int getXLocation() { return xLocation。 } public LoginRegisterFrame() { super()。 = socketsend。 25 } private void initialize() //初始化 { (getXLocation(),getYLocation())。 (true)。 userLabel = new JLabel()。 (new Rectangle(145, 163, 150, 30))。 (getLoginButton(), null)。 (promptLabel, null)。 } 用戶登錄模塊的實(shí)現(xiàn) 本界面需要填寫(xiě)的有兩個(gè),一個(gè)是用戶名,另一個(gè)是用戶密碼。 服務(wù)器再檢查是否有他的離線消息,如果有這立即發(fā)送給用戶。 (登錄 )。//[varchar2(32)] : 登陸密碼 if(()||()) { (請(qǐng)?zhí)顚?xiě)用 戶名或密碼 )。 PrintWriter pw = new PrintWriter(os,true)。 29 String userinfostr = ()。 //true\0UserUserName\0UserPassword\0UserName\0UserEmail\0UserPower\0UserState\0UserIP if(b[0].equals(true)) { (b[1])。 ((b[5]))。 new MainChatFrame(socketaccept,socketsend,userinfo)。 30 } return loginButton。 (new (){ public void actionPerformed( e) //登陸界面點(diǎn)注冊(cè)按鈕 { (客戶端 RegisterRegisteractionPerformed())。 //loc[0]=341 loc[1]=262] int xloc = (loc[0])。 new RegisterFrame(socketaccept,socketsend,xloc,yloc)。 (new Rectangle(190, 60, 150, 30))。 } return passwordTextField。 短消息發(fā)送以后,服務(wù)器端對(duì)應(yīng)的監(jiān)聽(tīng)線程會(huì)接收到一個(gè)數(shù)據(jù)包。 33 圖 53 聊天系統(tǒng)聊天界面 核心代碼: private JButton getSendButton() //聊天界面 按 發(fā)送按鈕 { if (sendButton == null) { sendButton = new JButton()。 Object ob[] = ()。 for(int i=0。 try //發(fā)送 { OutputStream os = ()。 } ()。 35 (new Rectangle(0, 400, 530, 75))。 }。 } /** * This method initializes FilePathField * * return */ private JTextField getFilePathField() { if (FilePathField == null) { FilePathField = new JTextField()。 } return sendButton。 (operation)。i++) { operation = operation+\0+ob[i]。 (()+\n)。 (發(fā) 送 )。如果不在線,存在服務(wù)器端,等 接收者 上線 后再 發(fā)送。服務(wù)器接收到請(qǐng)求后確定聊天方式。 } This method initializes passwordTextField return private JTextField
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1