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

正文內(nèi)容

基于cs結(jié)構(gòu)的即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-wenkub

2023-07-03 15:33:32 本頁面
 

【正文】 就會(huì)彈出各個(gè)群的信息,很多好友的信息,每天的交流溝通占去了很多很多的時(shí)間,工作效率低下。如果因特網(wǎng)不暢通,那么這些軟件都不能正常的使用,而且很多的即時(shí)通訊軟件只能在Windows平臺(tái)下運(yùn)行,不能在Linux、Mac OS上跨平臺(tái)運(yùn)行,除了個(gè)別的幾個(gè)工具之外,也不能再移動(dòng)平臺(tái)上運(yùn)行。如飛信可以免費(fèi)發(fā)送短信到好友的手機(jī)。同時(shí),隨著多媒體計(jì)算機(jī)技術(shù)和通信技術(shù)的迅猛發(fā)展,人們已經(jīng)不能滿足于簡(jiǎn)單的話音和文字通信,希望集語音、文字和圖像于一體的多媒體通信[24]?;贑S結(jié)構(gòu)的即時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)目 錄1 緒 論 1 即時(shí)通倍系統(tǒng)概述和選題背景 1 選題的目的和研究意義 2 本論文的研究方法 3 本論文的內(nèi)容 32 主要技術(shù)介紹 5 開發(fā)環(huán)境介紹 5 Java語言的產(chǎn)生與發(fā)展簡(jiǎn)介 5 Java語言的主要特點(diǎn) 5 Java web和struts2技術(shù) 6 MyEcIipse 7 Swing 編程 7 多線程編程 7 MySQL數(shù)據(jù)庫簡(jiǎn)介 8 即時(shí)通訊系統(tǒng)原理 8 套接字通信 9 數(shù)據(jù)報(bào)通信 9 系統(tǒng)的主要架構(gòu) 9 TCP/IP 協(xié)議 103 即時(shí)通信系統(tǒng)分析 12 系統(tǒng)基本功能描述 12 可行性分析 12 系統(tǒng)需求分析 124 即時(shí)通信系統(tǒng)設(shè)計(jì) 15 數(shù)據(jù)庫設(shè)計(jì) 15 系統(tǒng)模塊設(shè)計(jì) 15 聊天系統(tǒng)工作原理圖 15 系統(tǒng)功能模塊圖: 16 系統(tǒng)用例圖 17 活動(dòng)圖 18 系統(tǒng)類設(shè)計(jì) 19 Message類的設(shè)計(jì): 19 截圖類的設(shè)計(jì): 21 聊天記錄類的設(shè)計(jì): 21 服務(wù)端線程的設(shè)計(jì): 225 即時(shí)通信系統(tǒng)實(shí)現(xiàn) 23 實(shí)現(xiàn)概況 23 注冊(cè)模塊 23 流程圖 23 關(guān)鍵代碼 24 登錄模塊 25 流程圖 25 關(guān)鍵代碼 26 聊天模塊 30 流程圖 30 關(guān)鍵代碼 31 文件模塊 35 流程圖 35 關(guān)鍵代碼 36 用戶管理模塊 41 流程圖 41 關(guān)鍵代碼 42 其他功能的實(shí)現(xiàn) 45 截圖功能的實(shí)現(xiàn) 45 46 服務(wù)端線程的實(shí)現(xiàn) 48 用戶界面的設(shè)計(jì) 48 登陸界面 48 好友列表 49 50結(jié) 論 51致 謝 52參考文獻(xiàn) 53附錄A 英文原文 55附錄B 漢語翻譯 621 緒 論 即時(shí)通倍系統(tǒng)概述和選題背景即時(shí)通信(Instant Messaging,縮寫為IM),是以萬維網(wǎng)為基礎(chǔ),實(shí)現(xiàn)通信雙方語言、文件、語音等實(shí)時(shí)信息傳送的通信過程[1]。即時(shí)通信技術(shù)自從1996年誕生以來,經(jīng)歷了 10余年的發(fā)展,已經(jīng)從最初的簡(jiǎn)單的文字聊天通信工具,發(fā)展成為一個(gè)集通信和娛樂統(tǒng)一于一體的廣泛平臺(tái)。Google talk的聊天記錄是以郵件的形式保存在Google mail的郵箱里面[5]。隨著時(shí)代的發(fā)展,互聯(lián)網(wǎng)時(shí)代的到來,人們的溝通交流方式也變得越來越豐富,如Email、BBS、即時(shí)通訊軟件、微博、移動(dòng)終端等。 發(fā)出一款能在企事業(yè)單位內(nèi)部使用的、進(jìn)行工作溝通交流的即時(shí)通訊軟件,使得我們能在上班的時(shí)候免受工作之外的各種信息的干擾,提高我們的溝通質(zhì)量,提升人們的溝通體驗(yàn),就顯得非常必要。例如手機(jī)即時(shí)通訊和PC即時(shí)通訊,手機(jī)即時(shí)通訊的代表就是短信。在信息化時(shí)代,作為人們使用最多的,與日常生活最為密切的即時(shí)通訊工具,就成了人與人之間進(jìn)行信息交流,感情傳遞的主要方式。本系統(tǒng)具有如下的特點(diǎn):(1)由于減少了工作之外的因素的干擾,工作效率大大的提高,溝通體驗(yàn)得到了提升。(5)由于采用C/S架構(gòu),所有的信息都是通過服務(wù)器轉(zhuǎn)發(fā),很方便的查詢歷史記錄。然后經(jīng)過需求分析確定了系統(tǒng)最終要實(shí)現(xiàn)的功能,確定了本系統(tǒng)所使用的后臺(tái)數(shù)據(jù)庫系統(tǒng)為MySQL,并對(duì)系統(tǒng)中的數(shù)據(jù)庫進(jìn)行了設(shè)計(jì)。系統(tǒng)釆用模塊化設(shè)計(jì),釆用自頂向下的開發(fā)模式??紤]到要可以在局域網(wǎng)中應(yīng)用,本系統(tǒng)使用的是第二種方法,經(jīng)過設(shè)置,在局域網(wǎng)或internet上都可以使用。詳細(xì)的介紹了本系統(tǒng)所涉及到的即時(shí)通信的原理。介紹了數(shù)據(jù)庫操作的MySQL語言。第四章系統(tǒng)設(shè)計(jì)。最后是結(jié)語和致謝。Java被廣泛接受并推動(dòng)了 Web的迅速發(fā)展,同時(shí)Java技術(shù)也不斷更新。Java是面向?qū)ο蟮?、?jiǎn)單的、分布式的、解釋型的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、高性能的、多線程的和動(dòng)態(tài)的[7]。另外Java全面支持動(dòng)態(tài)綁定。總之,Java語法好比C++語法的一個(gè)“純凈”版本。另外,Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。(5)Java語言是健壯的。(6) Java語言是安全的。(8) Java語言是可移植的。(9)Java是高性能的。在不同的機(jī)器上,只是調(diào)用多線程的代碼完全相同,Java把多線程的實(shí)現(xiàn)交給了底層的操作系統(tǒng)或線程庫來完成。另外,類庫中增加的新方法和其他實(shí)例不會(huì)影響到原有程序的運(yùn)行。簡(jiǎn)單而言,MyEcIipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò),完整支持 HTML,Stmts,JSF,CSS,Javascript,MySQL,Hibernate。本系統(tǒng)用到的Swing組件有面板(JPanel)、滾動(dòng)窗口(JscrollPane)、選項(xiàng)板(JTabbedPane)、按鈕(JButton)、組合框(JComboBox)、標(biāo)簽(JLabel)、表格(JTable)、文本域(JTextField)、文本區(qū)域(JTextArea)。一個(gè)進(jìn)程中既包括所要執(zhí)行的指令,也包括執(zhí)行指令所需的任何系統(tǒng)資源,如CPU、內(nèi)存空間、I/O端口等,不同進(jìn)程所占用的系統(tǒng)資源相對(duì)獨(dú)立。多線程程序比多進(jìn)程程序需要更少的系統(tǒng)開銷。Java支持內(nèi)置多線程編程。MySQL是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,MySQL是最佳的選擇,而且由于MySQL是開放源代碼的軟件,因此,可以大大降低總體的擁有成本。流套接字(stream socket)使用傳輸控制協(xié)議(TCP)進(jìn)行數(shù)據(jù)傳輸,而數(shù)據(jù)報(bào)套接字使用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)[10]。一旦建立連接,客戶端和服務(wù)器端就可以通過套接字進(jìn)行通信。首先創(chuàng)建一個(gè)服務(wù)器,這需要?jiǎng)?chuàng)建一個(gè)服務(wù)器套接字server socket,在創(chuàng)建服務(wù)器套接字之后,服務(wù)器使用下列語句監(jiān)聽連接:Socket socket = ServerSocket .accept()。而客戶端只要能夠順序處理服務(wù)器程序的響應(yīng)就可以了,因此客戶端程序通常不使用多線程?;贑/S的體系架構(gòu):C/S架構(gòu),即Client/Server(客戶機(jī)/服務(wù)器)結(jié)構(gòu),是傳統(tǒng)的軟件系統(tǒng)體系結(jié)構(gòu),通過將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3tier結(jié)構(gòu)。特別是在JAVA這樣的跨平臺(tái)語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、速度快、效果優(yōu)。應(yīng)用層應(yīng)用進(jìn)程應(yīng)用進(jìn)程應(yīng)用進(jìn)程應(yīng)用進(jìn)程UDPTCP傳輸層網(wǎng)絡(luò)層IGMPIPICMPARPRARP網(wǎng)絡(luò)接口層網(wǎng)絡(luò)接口圖21 TCP/IP協(xié)議體系結(jié)構(gòu)網(wǎng)絡(luò)接口層:提供了 TCP/IP與各種物理網(wǎng)絡(luò)(局域網(wǎng)、廣域網(wǎng)等)的接口,并為網(wǎng)絡(luò)層提供服務(wù)。應(yīng)用層:提供各種應(yīng)用服務(wù),例如HTTP、SMTP、FTP等協(xié)議。它負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一旦發(fā)現(xiàn)傳輸過程中有數(shù)據(jù)包丟失就會(huì)發(fā)出信號(hào),自動(dòng)要求將丟失的數(shù)據(jù)重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡?并且能夠調(diào)整接收到的數(shù)據(jù)包,恢復(fù)數(shù)據(jù)到原來分片之前的順序。服務(wù)器端應(yīng)當(dāng)是一個(gè)信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。(2)經(jīng)濟(jì)可行性計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)普及,因此在網(wǎng)絡(luò)設(shè)備上不需要進(jìn)行大的投入。綜上所述,即時(shí)Java即時(shí)通訊系統(tǒng)是可行的。然后客戶向服務(wù)器請(qǐng)求讀取好友名單,服務(wù)器收到該請(qǐng)求,從數(shù)據(jù)庫中取出好友列表,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友。B接收到A發(fā)來的信息,如果是未建立對(duì)話窗口,則自動(dòng)打開顯示。同樣,如果是未建立對(duì)話窗口,則自動(dòng)打開顯示。(6)日志客戶端發(fā)送和接收到的信息都會(huì)儲(chǔ)存在文本文檔中。4 即時(shí)通信系統(tǒng)設(shè)計(jì)本系統(tǒng)中所涉及的主要實(shí)體及其屬性有:用戶(用戶賬號(hào),用戶名,密碼,個(gè)性簽名,頭像ID,年齡,性別)。通知所有好友自己已經(jīng)上線。如果不在線,存在服務(wù)器端,等它上線在發(fā)送。 信息的文本內(nèi)容private Integer senderAccount。private ListUser friends。文件名稱privatebyte[] fileByte。//表明是登陸成功 Integer message_login_fail=2。//返回在線好友的包 Integer message_offline=6。JFrame+paint(in Graphics g)監(jiān)聽各種鼠標(biāo)動(dòng)作 MouseListenerScreenshot+mouseDragged(in MouseEvente)+mouseClicked(in MouseEvente)+mousePressed(in MouseEvente)+mouseReleased(in MouseEvente)+paint(in Graphics g)MouseMotionListener圖48Screenshot類截圖類的核心是JDK中:Robot類中createScreenCapture(RectanglescreenRect)方法截圖。如果是文件則顯示出請(qǐng)求發(fā)送時(shí)間,同意接收時(shí)間,接收完成時(shí)間,和文件大小?!暗卿洝蹦K為用戶提供登錄界面,并在用戶登錄顯示好友列表;“聊天”模塊實(shí)現(xiàn)用戶的即時(shí)傳送信息,即多用戶即時(shí)聊天,可以發(fā)送文字或者截圖;“文件”模塊主要實(shí)現(xiàn)一用戶向另一用戶發(fā)送文件,對(duì)方可以選擇接受或者拒絕。 注冊(cè)模塊 流程圖開始填寫用戶信息存入數(shù)據(jù)庫顯示帳號(hào)結(jié)束圖51 用戶注冊(cè)流程圖,后臺(tái)是UserAction類,UserAction類中有方法:public String saveOrUpdate(){ (user)。 else (u)。 (2, ())。 (6, ())。 } }網(wǎng)頁上顯示用戶的account圖52用戶注冊(cè)信息 流程圖開始填寫用戶信息驗(yàn)證用戶信息驗(yàn)證用戶信息 成功 失敗發(fā)送登錄失敗信息接收離線信息結(jié)束圖53登錄流程圖 關(guān)鍵代碼1)客戶端代碼 登錄事件是定義在class IMClientLogin extends JFrame這個(gè)類的監(jiān)聽事件中。 User u=new User()。 Message m=new Message()。 } catch (IOException e1) { ()。登錄邏輯是在publicclass IMClientUserServer 里面,認(rèn)證成功者就會(huì)新建一個(gè)線程,專門負(fù)責(zé)接收服務(wù)器端發(fā)來的信息class ClientConnToServerThread extends Thread 。// ()。 =fl。 (()+)。 (o)。 } catch (IOException e) { ()。2)服務(wù)端代碼服務(wù)器端接收用戶驗(yàn)證信息的代碼被寫在了一個(gè)線程publicclassServerThread extends Thread中,這樣服務(wù)器就可以不停的監(jiān)聽端口,接收來自不同客戶端的請(qǐng)求,建立socket連接,也不會(huì)堵塞在主線程當(dāng)中[20]。 }如果驗(yàn)證成功,查找是否有他的離線消息,有就發(fā)送給他。 (myself)。 //查看是否有離線消息 LinkedListMessage list=(())。 (()+)。 } else { (3)。 } 聊天模塊開始打開聊天窗口輸入數(shù)據(jù)接收數(shù)據(jù)發(fā)送數(shù)據(jù)顯示數(shù)據(jù)結(jié)束圖54聊天流程圖 關(guān)鍵代碼1)客服端代碼發(fā)送文字信息:客戶端發(fā)送和顯示信息的代碼被封裝在了IMChat extends JFrame implements ActionListener類中,其中發(fā)送文字信息的代碼[18]。 //清空輸入 ()。 Document docs = ()。 } catch (BadLocationException e) { ()。 } catch (IOException e) { ()。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1