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

正文內(nèi)容

基于java即時(shí)聊天系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(編輯修改稿)

2024-07-19 20:39 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 標(biāo)志,此時(shí)用戶A在IM系統(tǒng)中的狀態(tài)為在線(Online Presence)。第二步,根據(jù)用戶A存儲(chǔ)在IM服務(wù)器上的好友列表(Buddy List),服務(wù)器將用戶A在線的相關(guān)信息發(fā)送給也同時(shí)在線的IM好友的PC機(jī),這些信息包括在線狀態(tài)、IP地址、IM客戶端使用的TCP端口(Port)號(hào)等,IM好友的客戶端收到此信息后將在予以提示。第三步是IM服務(wù)器把用戶A存儲(chǔ)在服務(wù)器上的好友列表及相關(guān)信息回送到他的客戶端機(jī),這些信息包括也在線狀態(tài)、IP地址、IM客戶端使用的TCP端口(Port)號(hào)等信息,用戶A的IM客戶端收到后將顯示這些好友列表及其在線狀態(tài)。 通訊方式(1)在線直接通訊如果用戶A想與他的在線好友用戶B聊天,他將直接通過(guò)服務(wù)器發(fā)送過(guò)來(lái)的用戶B的IP地址、TCP端口號(hào)等信息,直接向用戶B的PC機(jī)發(fā)出聊天信息,用戶B的IM客戶端軟件收到后顯示在屏幕上,然后用戶B再直接回復(fù)到用戶A的PC機(jī),這樣雙方的即時(shí)文字消息就不再IM服務(wù)器中轉(zhuǎn),而是直接通過(guò)網(wǎng)絡(luò)進(jìn)行點(diǎn)對(duì)點(diǎn)的通訊,即對(duì)等通訊方式(Peer To Peer)?!?】(2)在線代理通訊用戶A與用戶B的點(diǎn)對(duì)點(diǎn)通訊由于防火墻、網(wǎng)絡(luò)速度等原因難以建立或者速度很慢,IM服務(wù)器將會(huì)主動(dòng)提供消息中轉(zhuǎn)服務(wù),即用戶A和用戶B的即時(shí)消息全部先發(fā)送到IM服務(wù)器,再由服務(wù)器轉(zhuǎn)發(fā)給對(duì)方。因?yàn)樵撓到y(tǒng)其需求是十分明確的,所以該系統(tǒng)的開(kāi)發(fā)流程采用瀑布模型進(jìn)行設(shè)計(jì),分為幾大步驟:先進(jìn)行需求分析,再是系統(tǒng)設(shè)計(jì),然后是詳細(xì)設(shè)計(jì)與編碼,其次是軟件的測(cè)試,最后是軟件的運(yùn)行和維護(hù)?!?】在實(shí)際過(guò)程中這些步驟經(jīng)常是重疊和彼此間有信息交換,它不是一個(gè)簡(jiǎn)單線性過(guò)程,而是包括開(kāi)發(fā)步驟的多個(gè)反復(fù)。如圖2所示。需求分析系統(tǒng)設(shè)計(jì)詳細(xì)設(shè)計(jì)與編碼軟件測(cè)試 軟件運(yùn)行與維護(hù)圖2 即時(shí)通訊系統(tǒng)開(kāi)發(fā)流程圖該即時(shí)聊天工具按如下過(guò)程完成通信:(1)客戶向服務(wù)器注冊(cè),告知服務(wù)器該客戶監(jiān)聽(tīng)某主題;(2)客戶注冊(cè)之后,向服務(wù)器發(fā)送消息;(3)服務(wù)器再把消息發(fā)送給所有監(jiān)聽(tīng)此主題的客戶。根據(jù)以上描述,該系統(tǒng)功能模塊圖請(qǐng)見(jiàn)圖3。即時(shí)聊天系統(tǒng)服務(wù)器端客戶端建立連接存儲(chǔ)數(shù)據(jù)監(jiān)聽(tīng)用戶新建用戶登 錄通訊交流圖3 通訊系統(tǒng)的功能模塊 服務(wù)器端由圖3可知服務(wù)器端完成至少3大功能:建立連接、存儲(chǔ)數(shù)據(jù)和監(jiān)聽(tīng)客戶。這3大功能的具體含義如下:(1)建立一個(gè)ServerSocket連接,不斷偵聽(tīng)是否有客戶端連接或者斷開(kāi)連接。(2)服務(wù)器端是一個(gè)信息發(fā)送中心,所有客戶端的信息都傳到服務(wù)器端,再由服務(wù)器根據(jù)要求分發(fā)出去。(3)數(shù)據(jù)庫(kù)數(shù)據(jù)操作包括將用戶信息存儲(chǔ)到數(shù)據(jù)庫(kù)等。 客戶端客戶端要完成4大功能:新建立用戶、用戶登錄、通信交流。這些功能的含義如下:(1)新建立用戶:客戶端與服務(wù)器端建立通信信道,向服務(wù)器端發(fā)送新建用戶的信息,接收來(lái)自服務(wù)器的信息進(jìn)行注冊(cè)。(2)用戶登錄:客戶端與服務(wù)器端建立通信信道,向服務(wù)器端發(fā)送信息,完成用戶登錄。(3)通信交流:客戶端可完成的信息的編輯、發(fā)送和接收等功能。 數(shù)據(jù)庫(kù)概要設(shè)計(jì)因?yàn)楸鞠到y(tǒng)采用的是2級(jí)C/S結(jié)構(gòu)模式,所以,為了減少服務(wù)器的存儲(chǔ)量,方便程序設(shè)計(jì),本系統(tǒng)只對(duì)用戶信息進(jìn)行存儲(chǔ)。利用JAVA中的hibernate框架技術(shù)進(jìn)行存儲(chǔ)。在Hibernate中,各表的映射文件….,在本系統(tǒng)中,用戶表信息可以用Xml代碼實(shí)現(xiàn)。用戶表(user)表1 用戶信息表名稱字段名稱類別主鍵非空用戶編號(hào)id數(shù)字是是登錄名CustName文本否是登錄密碼CustPassword文本否是年齡Age文本否是性別Sex文本否是電子郵箱文本否是5 詳細(xì)設(shè)計(jì) 服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn)作為C/S模式下的系統(tǒng)開(kāi)發(fā),很顯然服務(wù)器端程序的設(shè)計(jì)是非常重要的。下面就服務(wù)器端的相關(guān)程序模塊進(jìn)行設(shè)計(jì),并一定程度上實(shí)現(xiàn)了相關(guān)功能。 主服務(wù)器類的設(shè)計(jì)設(shè)計(jì)服務(wù)器時(shí)需要考慮如下幾個(gè)因素:(1)服務(wù)器的運(yùn)行速度;(2)服務(wù)器的響應(yīng)速度,包括新建連接和發(fā)送數(shù)據(jù)的響應(yīng)速度;(3)I/O吞吐量;(4)其他:流量控制(QoS)、安全性。針對(duì)TCP/IP協(xié)議的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)服務(wù)器的程序結(jié)構(gòu)需要考慮以下的因素:(1)多線程;(2)多進(jìn)程;(3)單線程。主服務(wù)器類實(shí)現(xiàn)了服務(wù)器端的多線程,使用SeverSocket s=newServerSocket(1001)語(yǔ)句在1001端口創(chuàng)建套接口;使用new ServerThread(socket)語(yǔ)句創(chuàng)建新的線程。主服務(wù)器類調(diào)用ServerThread類,而每個(gè)ServerThread實(shí)體就是一個(gè)獨(dú)立的線程,剛好對(duì)應(yīng)于客戶端的連接請(qǐng)求響應(yīng)線程。服務(wù)器端有一個(gè)(或多個(gè))進(jìn)程在指定的端口等待客戶的連接信息,一旦連接成功,就可以按設(shè)計(jì)的數(shù)據(jù)交換方法和格式進(jìn)行數(shù)據(jù)傳輸??蛻舳酥辉谛枰臅r(shí)候向服務(wù)器端發(fā)出連接請(qǐng)求。實(shí)現(xiàn)界面如圖4。圖4 服務(wù)器啟動(dòng)界面現(xiàn)就其中一些核心代碼進(jìn)行講解。public class AppServer extends Thread{}其中public是JAVA的關(guān)鍵字,用來(lái)表示該類是共有,在整個(gè)程序里都可以訪問(wèn)到它;Class表示類定義,它后面接著用戶定義的類的類名為AppServer;extends表示繼承的意思,他后面的類Thread是子類,能夠繼承父類AppServer所定義的一些變量。這條語(yǔ)言表示的意思就是聲明一個(gè)公共類AppServer,用子類Thread繼承父類AppServer中的一些變量。static boolean newMessage。其中,static是關(guān)鍵字,表示靜態(tài)變量,Boolean表示變量類型為布爾型,變量名為newMessage。這條語(yǔ)句的意思是定義一個(gè)靜態(tài)變量newMessage,它的類型為布爾型。值得強(qiáng)調(diào)的是布爾型數(shù)據(jù)只有兩個(gè)值true和false,并且它們不對(duì)應(yīng)人數(shù)整數(shù)值。if(start) { (已啟動(dòng)...)。 log(null,服務(wù)器已啟動(dòng).. )。 }else { (關(guān)閉中...)。 }這是一條if條件判斷語(yǔ)句,它表示變量start如果不為空,那么執(zhí)行語(yǔ)句第一個(gè)大括號(hào)中的語(yǔ)句,如果為空,則執(zhí)行else中的語(yǔ)句。其中,log為輸出語(yǔ)句,表示在窗口中輸出“服務(wù)器已啟動(dòng)”信息。public void run() { try {while (start) { Socket client = ()。 Connection con = new Connection(client, u, v, userInfo)。 } } catch (IOException e) { log(e, 不能監(jiān)聽(tīng)!)。 } }這個(gè)函數(shù)的作用是監(jiān)聽(tīng)用戶信息,void表示定義的函數(shù)不需要返回值,while是循環(huán)語(yǔ)句關(guān)鍵字,在語(yǔ)句中的意思為直到start的值不為空,將循環(huán)執(zhí)行后面括號(hào)的語(yǔ)句,直到start值為空后,循環(huán)才結(jié)束。Connection con表示連接用戶信息。Catch是對(duì)java中的異常進(jìn)行捕獲,并且能夠拋出異常,便于程序能夠正常運(yùn)行。 登錄驗(yàn)證模塊系統(tǒng)的登錄模塊是比較重要的,這是用戶的一個(gè)身份驗(yàn)證,是通訊系統(tǒng)必須的一個(gè)功能模塊。如果客戶端輸入的字符串表方式需要登錄,那么服務(wù)器在接收到該信息后連接數(shù)據(jù)庫(kù),準(zhǔn)備從數(shù)據(jù)庫(kù)選擇昵稱和密碼。服務(wù)器接收到客戶端發(fā)送過(guò)來(lái)的號(hào)碼和密碼信息后,設(shè)定數(shù)據(jù)庫(kù)查尋條件,并執(zhí)行數(shù)據(jù)庫(kù)查尋,通過(guò)比較輸入的用戶名和密碼數(shù)據(jù)庫(kù)信息來(lái)卻請(qǐng)用戶的登錄是否成功。以下為登陸驗(yàn)證的流程圖。符合不符合登陸系統(tǒng)輸入信息驗(yàn)證進(jìn)入系統(tǒng)圖5 用戶登錄流程圖 注冊(cè)處理模塊新建用戶是即時(shí)通訊工具的一個(gè)基本功能。用戶新建過(guò)程也在線程監(jiān)聽(tīng)函數(shù)run()中。新建用戶的過(guò)程是這樣的:首先使用Register_Customer()方法加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)類;()方法獲取數(shù)據(jù);在獲取注冊(cè)名時(shí),進(jìn)行判斷,查看用戶名是否重復(fù),如果重復(fù),則向客戶端彈出提示信息,見(jiàn)圖6;如果不重復(fù),服務(wù)器接收客戶端用戶發(fā)送的昵稱、密碼、用戶Email等信息,執(zhí)行數(shù)據(jù)庫(kù)添加操作完成用戶的創(chuàng)建;最后向用戶反饋?zhàn)?cè)成功信息。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1