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ì)-文庫吧

2025-06-03 15:33 本頁面


【正文】 MyEclipse 企業(yè)級(jí)工作平臺(tái)(MyEcIipse Enterprise Workbench,簡(jiǎn)稱 MyEcIipse)是對(duì)Eclipse IDE的擴(kuò)展,集成了從J2EE到各種輕量級(jí)的框架(Struts,Spring,Hibemate等等),有利于程序的一體化開發(fā)。簡(jiǎn)單而言,MyEcIipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò),完整支持 HTML,Stmts,JSF,CSS,Javascript,MySQL,Hibernate。 編程,更美觀。Swing擁有4倍于AWT的用戶界面組件,他是在AWT包的基礎(chǔ)上的擴(kuò)展。本系統(tǒng)中大量使用了Swing組件編程。本系統(tǒng)用到的Swing組件有面板(JPanel)、滾動(dòng)窗口(JscrollPane)、選項(xiàng)板(JTabbedPane)、按鈕(JButton)、組合框(JComboBox)、標(biāo)簽(JLabel)、表格(JTable)、文本域(JTextField)、文本區(qū)域(JTextArea)。其中文本域(JTextField)是用來輸入或顯示字符串的Swing組件[12],文本區(qū)域(JTextArea)可以讓用戶輸入多行文本的Swing組件[12]。 多線程編程多任務(wù)處理有兩種截然不同的類型:基于進(jìn)程的和基于線程的。進(jìn)程是程序的一次動(dòng)態(tài)執(zhí)行,對(duì)應(yīng)了從代碼加載、執(zhí)行至執(zhí)行完畢的一個(gè)完整過程。一個(gè)進(jìn)程中既包括所要執(zhí)行的指令,也包括執(zhí)行指令所需的任何系統(tǒng)資源,如CPU、內(nèi)存空間、I/O端口等,不同進(jìn)程所占用的系統(tǒng)資源相對(duì)獨(dú)立。因此,基于進(jìn)程的多任務(wù)處理的特點(diǎn)是允許你的計(jì)算機(jī)同時(shí)運(yùn)行兩個(gè)或更多的程序。線程是進(jìn)程執(zhí)行過程中產(chǎn)生的多條執(zhí)行線索,是比進(jìn)程更小的執(zhí)行單位,必須棲身于某一進(jìn)程之中,有進(jìn)程觸發(fā)執(zhí)行。基于進(jìn)程的多任務(wù)處理的特點(diǎn)是一個(gè)程序可以同時(shí)執(zhí)行兩個(gè)或多個(gè)任務(wù)的功能。多線程程序比多進(jìn)程程序需要更少的系統(tǒng)開銷。在創(chuàng)建或撤銷進(jìn)程時(shí),系統(tǒng)都要為之創(chuàng)建和回收進(jìn)程控制塊,分配或回收資源,如內(nèi)存空間和I/O設(shè)備,系統(tǒng)所付出的開銷明顯大于創(chuàng)建或撤銷時(shí)的開銷。在進(jìn)程切換時(shí),涉及到當(dāng)前進(jìn)程CPU環(huán)境的保存及新被調(diào)度運(yùn)行進(jìn)程的CPU環(huán)境的設(shè)置,而線程的切換則僅需保存和設(shè)置少量寄存器內(nèi)容,不涉及存儲(chǔ)管理方面的操作[8]。因此線程間的切換也是低開銷的。Java支持內(nèi)置多線程編程。在本系統(tǒng)中,設(shè)置后臺(tái)線程處理服務(wù)器和客戶程序的通信。服務(wù)器資源以輕量級(jí)的線程提供,和多個(gè)客戶線程并發(fā)連接通信。這樣可以減輕服務(wù)器端的開銷,同時(shí)保證了多個(gè)用戶端連接能夠得到快速而高效的服務(wù)[9]。MySQL是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。與其他的大型數(shù)據(jù)庫例如Oracle、DBSQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,MySQL是最佳的選擇,而且由于MySQL是開放源代碼的軟件,因此,可以大大降低總體的擁有成本。目前,在Internet上所流行的主要網(wǎng)站的構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)和LNMP(Linux+Nginx+MySQL+php/perl/Python),即使用Linux作為操作系統(tǒng),Apache和Nginx作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫,PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。Java支持流套接字和數(shù)據(jù)報(bào)套接字。流套接字(stream socket)使用傳輸控制協(xié)議(TCP)進(jìn)行數(shù)據(jù)傳輸,而數(shù)據(jù)報(bào)套接字使用用戶數(shù)據(jù)報(bào)協(xié)議(UDP)[10]。網(wǎng)絡(luò)程序設(shè)計(jì)通常涉及一個(gè)服務(wù)器和一個(gè)或多個(gè)客戶端。客戶端向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器響應(yīng)請(qǐng)求??蛻舳藦膰L試建立與服務(wù)器連接開始,服務(wù)器可能接受或拒絕連接。一旦建立連接,客戶端和服務(wù)器端就可以通過套接字進(jìn)行通信。套接字(Socket)是兩個(gè)主機(jī)之間邏輯連接的端點(diǎn),用來實(shí)現(xiàn)客戶方和服務(wù)方的連接。Java對(duì)套接字通信的處理非常類似于對(duì)輸入輸出操作的處理,因此,程序?qū)μ捉幼肿x寫就像對(duì)文件中讀寫數(shù)據(jù)一樣容易。套接字分為服務(wù)器端套接字、客戶端套接字。首先創(chuàng)建一個(gè)服務(wù)器,這需要?jiǎng)?chuàng)建一個(gè)服務(wù)器套接字server socket,在創(chuàng)建服務(wù)器套接字之后,服務(wù)器使用下列語句監(jiān)聽連接:Socket socket = ServerSocket .accept()??蛻舳藞?zhí)行下列語句請(qǐng)求與服務(wù)器進(jìn)行連接:Socket socket = new Socket (serverName,port)。當(dāng)服務(wù)器和客戶端建立連接后就可以進(jìn)行通信了。由于本系統(tǒng)存在單個(gè)服務(wù)程序與多個(gè)客戶程序通信的可能,所以服務(wù)程序要響應(yīng)客戶程序不應(yīng)該花很多時(shí)間,否則客戶程序在得到服務(wù)前有可能花很多時(shí)間來等待通信的建立,然而服務(wù)器程序和客戶程序的會(huì)話可能很長,因此,為加快對(duì)客戶程序連接請(qǐng)求的響應(yīng),比較好的解決方法是服務(wù)器主機(jī)運(yùn)行一個(gè)后臺(tái)線程,這個(gè)后臺(tái)線程處理服務(wù)器和客戶端程序的通信。而客戶端只要能夠順序處理服務(wù)器程序的響應(yīng)就可以了,因此客戶端程序通常不使用多線程。數(shù)據(jù)報(bào)是一種無連接的通信方式,它的速度比較快,但是由于不建立連接,不能保證所有數(shù)據(jù)都能到達(dá)目的地[6]。所有一般用于傳送非關(guān)鍵性的數(shù)據(jù)。發(fā)送和接收數(shù)據(jù)報(bào)需要使用Java類庫中的DatagramPacket類和DatagramSocket類?;贑/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ì)??蛻舳擞糜谟脩舻淖?cè)、登錄、通訊,而服務(wù)器端用來接收用戶注冊(cè)信息、驗(yàn)證登錄信息以及轉(zhuǎn)發(fā)用戶之間相互通訊的信息?!/S結(jié)構(gòu)(Browser/Server結(jié)構(gòu))結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3tier結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet模式下數(shù)據(jù)庫應(yīng)用,相對(duì)易于把握、成本也是較低的。它是一次性到位的開發(fā),能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全 。特別是在JAVA這樣的跨平臺(tái)語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、速度快、效果優(yōu)。TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議),是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)的基礎(chǔ),主要的組成部分是網(wǎng)絡(luò)層的IP協(xié)議族和傳輸層的TCP協(xié)議族。TCP/IP協(xié)議定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。協(xié)議采用了 4層的層級(jí)結(jié)構(gòu):網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。應(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ù)。網(wǎng)絡(luò)層:主要功能是管理Internet地址、路由選擇、數(shù)據(jù)的分片和重組。這一層解決了計(jì)算機(jī)之間的通信問題,該層的協(xié)議統(tǒng)稱為IP協(xié)議。傳輸層:主要功能是為Internet提供可靠地傳輸控制,主要的協(xié)議包括TCP協(xié)議和UDP協(xié)議。應(yīng)用層:提供各種應(yīng)用服務(wù),例如HTTP、SMTP、FTP等協(xié)議。每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。通俗而言:IP協(xié)議是給因特網(wǎng)上的每一臺(tái)電腦提供一個(gè)IP地址,保證網(wǎng)絡(luò)是暢通的,但是不能保證發(fā)送的數(shù)據(jù)都能到達(dá)指定的目標(biāo)IP,即不能保證數(shù)據(jù)傳輸?shù)目煽啃訹15]。而TCP協(xié)議則解決了數(shù)據(jù)傳輸可靠性的問題。它負(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ù)到原來分片之前的順序。3 即時(shí)通信系統(tǒng)分析客戶端可以實(shí)現(xiàn)注冊(cè),即時(shí)聊天,相互之間收發(fā)文件,發(fā)送截圖,查看歷史聊天記錄等功能。收發(fā)消息時(shí),可以實(shí)現(xiàn)離線接收。服務(wù)器端應(yīng)當(dāng)建立一個(gè)ServerSocket,并且不斷進(jìn)行偵聽是否有客戶端連接或者斷開連接(包括判斷沒有響應(yīng)的連接超時(shí))。服務(wù)器端應(yīng)當(dāng)是一個(gè)信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。在后臺(tái)管理系統(tǒng),可以到對(duì)用戶進(jìn)行增刪改查,查看在線用戶,和踢用戶下線。本系統(tǒng)的可行性分析包括以下幾個(gè)方面的內(nèi)容:(1)技術(shù)可行性使用Swing 和socket技術(shù),可以很輕松地開發(fā)出實(shí)用、簡(jiǎn)便、高效的基于網(wǎng)絡(luò)的即時(shí)通訊系統(tǒng)。因此技術(shù)上是可以實(shí)現(xiàn)的。(2)經(jīng)濟(jì)可行性計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)普及,因此在網(wǎng)絡(luò)設(shè)備上不需要進(jìn)行大的投入。本系統(tǒng)需要一個(gè)MySQL數(shù)據(jù)庫服務(wù)器,由于并發(fā)使用人數(shù)比較少,tomcat可以作為web服務(wù)器,所以成本很低。(3)操作可行性只要一臺(tái)以上計(jì)算機(jī)連接在同一個(gè)局域網(wǎng)內(nèi),本系統(tǒng)就可以安裝使用,所以操作上完全不存在問題。如果要實(shí)現(xiàn)internet上通訊,只需要將服務(wù)器端運(yùn)行在一個(gè)有固定IP的公網(wǎng)上就可以。綜上所述,即時(shí)Java即時(shí)通訊系統(tǒng)是可行的。功能分析:本系統(tǒng)要實(shí)現(xiàn)的功能如下:(1)注冊(cè)服務(wù)器收到用戶的注冊(cè)請(qǐng)求,便開始接受客戶傳遞的信息,諸如客戶的呢稱,性別,籍貫,個(gè)人資料等,接受完畢后,便通過JDBC與后臺(tái)數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其號(hào)碼??蛻羰盏椒?wù)器返回的信息后,便打開窗口登錄。(2)登錄在客戶端,用戶輸入其號(hào)碼和密碼,然后建立與服務(wù)器的連接,告訴服務(wù)器我要登錄,服務(wù)器收到后,開始通過JDBC讀取數(shù)據(jù)庫,然后與用戶輸入的信息進(jìn)行比對(duì),如果成功,便打開主程序窗口。然后客戶向服務(wù)器請(qǐng)求讀取好友名單,服務(wù)器收到該請(qǐng)求,從數(shù)據(jù)庫中取出好友列表,然后向客戶端發(fā)送這些信息,客戶收到后就在主窗口顯示好友。(3)聊天客戶端首先發(fā)送消息到服務(wù)器端,服務(wù)器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。例如服務(wù)器接收到一個(gè)A發(fā)給B的消息,先判斷B是否已經(jīng)在線,如果在線就將信息發(fā)送過去。如果B不在線則把信息儲(chǔ)存在服務(wù)器,等B上線了在發(fā)送給他。B接收到A發(fā)來的信息,如果是未建立對(duì)話窗口,則自動(dòng)打開顯示。(4)發(fā)送截圖客戶端A點(diǎn)擊截圖按鈕,將屏幕鎖定,截取圖片,將圖片儲(chǔ)存在byte[]數(shù)組中發(fā)送到服務(wù)器端。服務(wù)器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。B接收到A發(fā)來的截圖信息,會(huì)根據(jù)byte[]構(gòu)造圖片,將圖片顯示出來。同樣,如果是未建立對(duì)話窗口,則自動(dòng)打開顯示。(5)發(fā)送文件客戶端A點(diǎn)擊發(fā)送文件按鍵,從本地選擇文件,將文件在byte[]數(shù)組中分批次發(fā)送到服務(wù)器端。服務(wù)器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。B接收到A發(fā)來的文件信息,會(huì)根據(jù)文件發(fā)送的狀態(tài)和byte[]構(gòu)造文件[1314]。(6)日志客戶端發(fā)送和接收到的信息都會(huì)儲(chǔ)存在文本文檔中。默認(rèn)儲(chǔ)存在C盤下面,會(huì)以用戶的登錄賬號(hào)為名。(7)對(duì)用戶的操作 管理員通過B/S的系統(tǒng)對(duì)用戶進(jìn)行增加,修改,刪除,查找等操作,對(duì)系統(tǒng)進(jìn)行維護(hù)。(8)在線用戶的操作 管理員通過B/S的系統(tǒng)對(duì)在線用戶操作,可以踢用戶下線。4 即時(shí)通信系統(tǒng)設(shè)計(jì)本系統(tǒng)中所涉及的主要實(shí)體及其屬性有:用戶(用戶賬號(hào),用戶名,密碼,個(gè)性簽名,頭像ID,年齡,性別)。 ER模型如圖所示passwordNamesignatureaccountUsersexProfileldage圖41系統(tǒng)實(shí)體及其屬性表41 User 字段名數(shù)據(jù)類型字段說明鍵引用備注accountint(6)IDPK主鍵(自動(dòng)增一)namevarchar(20)用戶名稱非空passwordvarchar(20)用戶密碼非空signatureVarchar(255)簽名profileIDint(2)頭像IDageint(3)年齡sexsex char(2)性別 聊天系統(tǒng)工作原理圖服務(wù)器客戶客戶客戶 Socket(TCP) Socker(TCP) Socker(TCP)…….圖42系統(tǒng)工作原理 系統(tǒng)功能模塊圖
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1