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

正文內(nèi)容

基于java的qq聊天系統(tǒng)-展示頁

2024-08-22 11:56本頁面
  

【正文】 namescott/name passwordtiger/password/jdbc分別表示 用戶名,密碼。 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 數(shù)據(jù)庫用模型進行設(shè)計。 (9)用戶下線用戶下線時,會向服務(wù)器發(fā)送下線通知,服務(wù)器將其狀態(tài)設(shè)為不在線,并通知好友。把聊天記錄放在客戶端。 (6)接受服務(wù)器發(fā)來的好友信息 用戶可以接受好友的聊天信息,包括即時信息和留言。 (4) 獲得好友資料 用戶登錄以后,想在客戶端得到好友的資料并顯示在聊天主界面上,可以把好友的的號碼發(fā)送到服務(wù)器進行數(shù)據(jù)庫連接從而得到該用戶的信息,并發(fā)送到客戶端進行顯示。 (2) 用戶登錄 用戶登錄時,服務(wù)器把該用戶在線好友和不在線好友的名單發(fā)送給用戶,客戶端將以不同的形式來顯示。 服務(wù)器端系統(tǒng)結(jié)構(gòu)圖 服務(wù)器端用例模型設(shè)計 客戶端基本功能設(shè)計(1) 申請?zhí)柎a 第一次登陸的用戶,可以先打開申請好功能,提交自己的資料到服務(wù)器。 服務(wù)器端基本功能設(shè)計(1) 服務(wù)管理器 本系統(tǒng)用一個繼承與JFrame的類來實現(xiàn)的系統(tǒng)的服務(wù)管理器來實現(xiàn)對服務(wù)器的管理,進行對服務(wù)器的各種功能進行操作。使用前注意事項: ; (Document)。在直覺、簡單和高效的前提下,這些API函數(shù)被最大限度的優(yōu)化。Jdom是用java語言讀、寫、操作XML的新API函數(shù)。它利用更為強有力的JAVA語言的諸多特性(方法重載、集合概念以及映射),把SAX和DOM的功能有效地結(jié)合起來。 JDOM的核心的UML模型:   JDOM是一個開源項目,它基于樹型結(jié)構(gòu),利用純JAVA的技術(shù)對XML文檔實現(xiàn)解析、生成、序列化以及多種操作。JDOM是對DOM的包裝,如果你用過DOM和JDOM開發(fā)過的話,你會發(fā)現(xiàn)JDOM的api用起來很方便,因為它返回的都是java的collection,,而且把DOM解析里面還多東西分類了,分成了element,Attrabute等,而在DOM里面全部都是Node,而且用起來很煩。 JDOM技術(shù) JDOM是一種使用 XML 的獨特 Java 工具包,用于快速開發(fā) XML 應(yīng)用程序。XML是用來存儲數(shù)據(jù)的,其焦點是數(shù)據(jù)的內(nèi)容。XML與其他數(shù)據(jù)表現(xiàn)形式最大的不同是:他極其簡單。 XML是標(biāo)準(zhǔn)通用標(biāo)記語言 (SGML) 的子集,非常適合 Web 傳輸。 XML文檔技術(shù) XML(the extensible markup language)用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。可以看出正是這套策略保證了數(shù)據(jù)庫連接的有效復(fù)用,避免頻繁地建立、釋放連接所帶來的系統(tǒng)資源開銷。如果沒有空閑連接,則查看當(dāng)前所開的連接數(shù)是不是已經(jīng)達到maxConn(最大連接數(shù)),如果沒達到就重新創(chuàng)建一個連接給請求的客戶;如果達到就按設(shè)定的maxWaitTime(最大等待時間)進行等待,如果等待maxWaitTime后仍沒有空閑連接,就拋出無空閑連接的異常給用戶。具體的實現(xiàn)方法是:當(dāng)客戶請求數(shù)據(jù)庫連接時,首先查看連接池中是否有空閑連接(指當(dāng)前沒有分配出去的連接)。    連接池的分配、釋放策略對于有效復(fù)用連接非常重要,我們采用的方法是一個很有名的設(shè)計模式:Reference Counting(引用記數(shù))。連接的合理分配、釋放可提高連接的復(fù)用,降低了系統(tǒng)建立新連接的開銷,同時也加速了用戶的訪問速度。 連接池管理策略是連接池機制的核心。另外,由于對JDBC中的原始連接進行了封裝,從而方便了數(shù)據(jù)庫應(yīng)用對于連接的使用(特別是對于事務(wù)處理),提高了開發(fā)效率,也正是因為這個封裝層的存在,隔離了應(yīng)用的本身的處理邏輯和具體數(shù)據(jù)庫訪問邏輯,使應(yīng)用本身的復(fù)用成為可能。因此,使用多線程和同步I/O可以更容易地處理類似于多請求的異步事件。如果這種應(yīng)用程序采用單線程來處理,當(dāng)監(jiān)聽線程接收到一個客戶端請求后,開始讀取客戶端發(fā)來的數(shù)據(jù),在讀完數(shù)據(jù)后,read方法處于阻塞狀態(tài),也就是說,這個線程將無法再監(jiān)聽客戶端請求了。 當(dāng)一個服務(wù)器應(yīng)用程序在接收不同的客戶端連接時最簡單地處理方法就是為每一個客戶端連接建立一個線程。線程是進程中亂序執(zhí)行的代碼流程。在進程中,有些程序流程塊是可以亂序執(zhí)行的,并且這個代碼塊可以同時被多次執(zhí)行。一般來說,當(dāng)運行一個應(yīng)用程序的時候,就啟動了一個進程,當(dāng)然有些會啟動多個進程。 JAVA多線程技術(shù) 多線程機制使應(yīng)用程序能夠并行執(zhí)行,而且同步機制保證了對共享數(shù)據(jù)的正確操作。 Socket通信原理流式Socket通信是一種基于連接的通信,即在通信開始之前雙方確認身份并建立一條專用的虛擬連接通道,然后通過通道以流式的形式傳輸信息進行通信,通信結(jié)束時拆除原先建立起的連接。當(dāng)前,支持并發(fā)多任務(wù)處理的有C++、Delphi、Java等語言開發(fā)工具。由于UDP在傳輸數(shù)據(jù)報前不用在客戶和服務(wù)器之間建立一個連接,且沒有超時重發(fā)等機制,故而傳輸速度很快。UDP連接框架如圖: UDP協(xié)議傳輸效率較高,與他相比,TCP協(xié)議傳輸效率較低,TCP是面向連接的傳輸控制協(xié)議,而UDP提供了無連接的數(shù)據(jù)報服務(wù);TCP具有高可靠性,確保傳輸數(shù)據(jù)的正確性,不出現(xiàn)丟失或亂序;UDP在傳輸數(shù)據(jù)前不建立連接,不對數(shù)據(jù)報進行檢查與修改,無須等待對方的應(yīng)答,所以會出現(xiàn)分組丟失、重復(fù)、亂序,應(yīng)用程序需要負責(zé)傳輸可靠性方面的所有工作;也正因為以上特征,UDP具有較好的實時性,工作效率較TCP協(xié)議高;UDP段結(jié)構(gòu)比TCP的段結(jié)構(gòu)簡單,因此網(wǎng)絡(luò)開銷也小。它是IETF RFC 768是UDP的正式規(guī)范。此后,應(yīng)用程序送給socket數(shù)據(jù),有socket交給驅(qū)動程序向網(wǎng)絡(luò)上發(fā)送出去,計算機從網(wǎng)絡(luò)上收到與該socket綁定的IP+PORT相關(guān)的數(shù)據(jù)后,由驅(qū)動程序交給Socket,應(yīng)用程序片可以從中提取數(shù)據(jù)。對應(yīng)用程序,它的基本結(jié)構(gòu)是:建立套接字,連接服務(wù)器,處理連接,關(guān)閉套接字。應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。兩者分別基于傳輸控制協(xié)議和用戶數(shù)據(jù)報協(xié)議?! ∠鄬Ψ?wù)器而言,客戶端的任務(wù)更加簡單,有了以上的簡單分析,可以知道,解決上述四個問題,即完成了該聊天系統(tǒng)的核心。  客戶端應(yīng)該完成的工作包括: ?。保c服務(wù)器端建立通信通道,向服務(wù)器端發(fā)送信息?! ∫陨暇褪欠?wù)器端最主要的兩個任務(wù)。首先來看一下服務(wù)器端的任務(wù):  1.服務(wù)器端應(yīng)當(dāng)建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接(包括判斷沒有響應(yīng)的連接超時)。系統(tǒng)采用客戶/服務(wù)器摸式(如圖) 設(shè)計方案的分析 聊天系統(tǒng)不外乎兩個方面,服務(wù)器端和客戶端。然后登錄成功的客戶就可以在服務(wù)器上聊天了。服務(wù)器端工作流程服務(wù)器端通過socket()系統(tǒng)調(diào)用創(chuàng)建一個Socket數(shù)組后(即設(shè)定了接受連接客戶的最大數(shù)目),與指定的本地端口綁定bind(),就可以在端口進行偵聽listen()。因此,在設(shè)計聊天系統(tǒng)的過程中,必須要考慮好以下幾個設(shè)計要點:實現(xiàn)思想在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個面向連接的通信過程。從這點上講,網(wǎng)絡(luò)即時通訊的出現(xiàn)改變?nèi)藗兊臏贤ǚ绞胶徒挥盐幕?,大大拓展了個人生活交流的空間。以致人們更愿意對陌生人敞開心扉。即時通訊系統(tǒng)的發(fā)展使得人們可以進行網(wǎng)上社交,獲得社會的尊重,實現(xiàn)自我需求,這同時也為了網(wǎng)絡(luò)即時通訊軟件發(fā)展的驅(qū)動力。本文所介紹的網(wǎng)絡(luò)聊天系統(tǒng)是基于開放的JAVA應(yīng)用程序開發(fā)設(shè)計的,其主要特性是能動態(tài)、實時的完成信息的傳遞,且具有高效的交互性,更有效的處理客戶請求,易于維護和更新,其運行所需環(huán)境及其工作流程和各個功能控件的工作原理將在本文依次介紹,并且文中提供了部分程序源代碼。畢業(yè)設(shè)計說明書第一章.緒論 課題背景 隨著互聯(lián)網(wǎng)逐步普及,人們的生活和工作也越來越離不開信息網(wǎng)絡(luò)的支持, 而聊天室是人們最常見, 最直接的網(wǎng)上交流的方式。本聊天系統(tǒng)以聊天交流為主,為廣大用戶提供一個借助網(wǎng)絡(luò)進行人際交往的平臺,也是網(wǎng)絡(luò)與現(xiàn)實最貼近的實用型網(wǎng)站。 課題研究的目的和意義 即時通訊系統(tǒng)的最大特點是在網(wǎng)上進行信息的實時交流。而物質(zhì)文明的日益發(fā)達所帶來的副作用,有使得人們習(xí)慣與周圍的人保持距離。與傳統(tǒng)通訊方式相比,即時通訊系統(tǒng)具有快捷,廉價,隱秘性高的特點,在網(wǎng)絡(luò)中可以跨年齡,身份,行業(yè),地域的限制,達到人與人,人與信息之間的零交流。 國內(nèi)外概況 目前國內(nèi)外做聊天系統(tǒng)的很多,產(chǎn)品也是琳瑯滿目,國內(nèi)有諸如騰訊與新浪UC網(wǎng)易泡泡等,為我畢業(yè)設(shè)計聊天系統(tǒng)做了充分的準(zhǔn)備. 騰訊無疑使國內(nèi)即時通訊市場的霸主,自從99年進入即時通訊領(lǐng)域并迅速占領(lǐng)市場之后,其在國內(nèi)用戶數(shù)量始終高居榜首,即時近幾年面對微軟MSN的強大攻勢,才由服務(wù)器進行中轉(zhuǎn)通信.第2章.系統(tǒng)設(shè)計方案的研究 系統(tǒng)的設(shè)計方案 聊天系統(tǒng)的設(shè)計跟普通網(wǎng)站設(shè)計有著許多不同的地方,普通網(wǎng)站設(shè)計所考慮的因素,例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設(shè)計等等,而聊天室只要提供滿足訪客雙方直接實時聊天即可。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務(wù)器端和客戶端兩部分程序。如果有客戶端連接請求,則在數(shù)組中選擇一個空Socket,將客戶端地址賦給這個Socket??蛻舳斯ぷ髁鞒炭蛻舳顺绦蛳鄬唵?,只需要建立一個Socket與服務(wù)器端連接,成功后通過這個Socket來發(fā)送和接收數(shù)據(jù)就可以了。簡單分析一下兩個方面所要完成的任務(wù),對設(shè)計這個程序來說,等于完成了一半?! 。玻?wù)器端應(yīng)當(dāng)是一個信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。不難看出,服務(wù)器端的任務(wù)并不復(fù)雜。 ?。玻邮諄碜苑?wù)器的信息。 采用的關(guān)鍵技術(shù) 系統(tǒng)采用的關(guān)鍵技術(shù)有: Socket網(wǎng)絡(luò)通信技術(shù) Java具有強大地網(wǎng)絡(luò)編程功能,它提供了基于Socket的通信方式(Socket—base—munication),使得應(yīng)用程序可以像讀文件一樣從Socket讀取數(shù)據(jù)和寫入數(shù)據(jù),java提供了流Socket和數(shù)據(jù)包Socket。 所謂socket通常也稱作套接字,用于描述IP地址和端口,是一個通信鏈的句柄。它的基本結(jié)構(gòu)是:建立套接字,綁定地址和端口,建立套接口和隊列,接受連接,處理連接,關(guān)閉套接字。 Socket在應(yīng)用程序中創(chuàng)建,通過一種綁定機制和驅(qū)動程序建立連接,告訴自己對應(yīng)的ip和port。 數(shù)據(jù)發(fā)送過程: 數(shù)據(jù)接收過程: UDP協(xié)議UDP 是User Datagram Protocol的簡稱, 中文名是用戶數(shù)據(jù)包協(xié)議,是 OSI 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。雖然UDP協(xié)議不可靠,但是也不會輕易導(dǎo)致傳輸失效。UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它們能到達目的地。 并發(fā)服務(wù)器技術(shù) 并發(fā)服務(wù)器原理及技術(shù)支持并發(fā)服務(wù)器是指在服務(wù)器具有良好的安全性和穩(wěn)定性的前提下,接收客戶端的請求后,立即用一個新的線程來實現(xiàn)服務(wù)器與該客戶進行交互,主程序再返回繼續(xù)對端口進行監(jiān)聽,等待下一個客戶的連接并與之交互,且可不斷如此反復(fù)。Java語言和Java虛擬機提供了完全意義上的多線程機制,其內(nèi)置語言級的多線程機制可以方便地實現(xiàn)多個并行程序的開發(fā),同時為并發(fā)服務(wù)器的整體設(shè)計提供技術(shù)支持。在Java中,分別由服務(wù)器端的ServerSocket類、()方法實現(xiàn)服務(wù)器端和客戶端的連接。通過使用多線程,程序設(shè)計者可以分別用不同線程完成特定的行為,而不需要采用全局的事件循環(huán)機制,這樣就很容易地實現(xiàn)網(wǎng)絡(luò)上的實時交互行為。啟動進程的時候,操作系統(tǒng)會為進程分配資源,其中最主要的資源是內(nèi)存空間,因為程序是在內(nèi)存中運行的。實際上,這樣的代碼塊就是線程體。當(dāng)多個線程同時運行的時候,這樣的執(zhí)行模式成為并發(fā)執(zhí)行。然后監(jiān)聽線程仍然負責(zé)監(jiān)聽來自客戶端的請求。而要想在單線程中處理多個客戶端請求,就必須使用非阻塞的Socket連接和異步I/,也更容易出錯。線程變化轉(zhuǎn)換圖如下:. 5 連接池技術(shù)連接池技術(shù)的核心思想是:連接復(fù)用,通過建立一個數(shù)據(jù)庫連接池以及一套連接使用、分配、管理策略,使得該連接池中的連接可以得到高效、安全的復(fù)用,避免了數(shù)據(jù)庫連接頻繁建立、關(guān)閉的開銷。連接池主要由三部分組成:連接池的建立、連接池中連接的使用管理、連接池的關(guān)閉。當(dāng)連接池建立后,如何對連接池中的連接進行管理,解決好連接池內(nèi)連接的分配和釋放,對系統(tǒng)的性能有很大的影響。下面介紹連接池中連接的分配、釋放策略。該模式在復(fù)用資源方面應(yīng)用的非常廣泛,把該方法運用到對于連接的分配釋放上,為每一個數(shù)據(jù)庫連接,保留一個引用記數(shù),用來記錄該連接的使用者的個數(shù)。如果存在空閑連接,則把連接分配給客戶并作相應(yīng)處理(即標(biāo)記該連接為正在使用,引用計數(shù)加1)。當(dāng)客戶釋放數(shù)據(jù)庫連接時,先判斷該連接的引用次數(shù)是否超過了規(guī)定值,如果超過就刪除該連接,并判斷當(dāng)前連接池內(nèi)總的連接數(shù)是否小于minConn(最小連接數(shù)),若小于就將連接池充滿;如果沒超過就將該連接標(biāo)記為開放狀態(tài),可供再次復(fù)用。 連接池的關(guān)閉當(dāng)應(yīng)用程序退出時,應(yīng)關(guān)閉連接池,此時應(yīng)把在連接池建立時向數(shù)據(jù)庫申請的連接對象統(tǒng)一歸還給數(shù)據(jù)庫(即關(guān)閉所有數(shù)據(jù)庫連接),這與連接池的建立正好是一個相反過程。用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。XML 提供
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1