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

正文內(nèi)容

基于java即時(shí)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文(參考版)

2025-02-08 06:27本頁(yè)面
  

【正文】 。 用戶登錄:打開(kāi)客戶端,輸入用戶名和密碼,點(diǎn)擊“登錄”; 用戶聊天:在“聊天內(nèi)容”對(duì)應(yīng)的文本框中,輸入聊天信息,在“你對(duì)”聊天對(duì)象下拉菜單中選擇聊天對(duì)象,最后點(diǎn)擊“發(fā)送”按鈕; 信息查看:在“聊天信息”文本框中,查看聊天信息。 然 后輸 入 cd c:\chat\src\\seler\service\。 確保安裝在 C 盤文件名為 ,環(huán)境變量直接復(fù)制就可以了。然后打“ java version”,如果安裝成功。 以上三個(gè)變量設(shè)置完畢,則按“確定”直至屬性窗口消失,下來(lái)是驗(yàn)證看看安裝是否成功。%java_home%\lib。%java_home%\jre\bin”, (其中“ %java_home%”的意思為剛才設(shè)置 java_home 的值),也可以直接寫上“ C:\\bin”; 最后再點(diǎn)“新建”,然后在變量名上寫 classpath,該 變量的含義是為 java 加載類 (class or lib)路徑,只有類在 classpath 中, java 命令才能識(shí)別。而java_home 和 classpath 是不存在的。然后選擇“高級(jí)”里面的“環(huán)境變量”,在新的打開(kāi)界面中的系統(tǒng)變量需要設(shè)置三個(gè)屬性“ java_home”、“ path”、“ classpath” ,其中在沒(méi)安裝過(guò) jdk 的環(huán)境下。首先右鍵點(diǎn)我的電腦。安裝到計(jì)算機(jī)上。 服務(wù)器的啟 動(dòng) 完成數(shù)據(jù)庫(kù)設(shè)計(jì)后啟 動(dòng)數(shù)據(jù)庫(kù)服務(wù)器 : 服務(wù)器啟動(dòng)后將顯示服務(wù)器地址和端口號(hào)。 軟件條件 即時(shí)通信服務(wù)器: Windows2021。 24 參考文獻(xiàn) [1] 尹治本 .計(jì)算機(jī)網(wǎng)絡(luò)及應(yīng)用教程 [M].成都 :西南交通大學(xué)出版社 .. [2]熊曉敏 ,劉瑛 ,陳惠清 .基于 Java 的網(wǎng)絡(luò)即時(shí)通訊系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)與現(xiàn)代化 ,2021(12): 8992. [3] 羅軍舟 ,黎波濤 ,楊明 ,吳俊 ,黃健 .TCP/IP 協(xié)議及網(wǎng)絡(luò)編程技術(shù) .北京 :清華大學(xué)出版社 .. [4] Bruce Eckel 著 ,侯捷翻譯 .Java 編程思想 [M].北京 :機(jī)械工業(yè)出版社出版 ,. [5] 京麗等 .數(shù)據(jù)通信原理 [M].北京 :北京郵電大學(xué)出版社 .. [6] 張虹 .軟件工程與軟件開(kāi)發(fā)工具 [M].北京 :清華大學(xué)出版社 .2021. [7] (第三版 )[M].北京:機(jī)械工業(yè)出版社 .2021. [8] Swing: David 著 .Java 圖形設(shè)計(jì)卷二 [M].Prentice Hall/. 25 附錄 附錄 1:系統(tǒng)的配置與使用 硬件條件 由于系統(tǒng)主要定位于內(nèi)部局域網(wǎng),計(jì)算機(jī)配置需求不是很高,如下: 即時(shí)通信服務(wù)器: 50 用戶規(guī)模雙 CPU: PIV 以上,內(nèi)存: 1G 以上。此刻我的心中卻有些悵然若失,因?yàn)槟切┦煜さ?計(jì)科 學(xué)院的恩師們和各位可愛(ài)的同學(xué)們,我們也即將揮手告別了。并且將其運(yùn)用在 實(shí)踐中去。 再次,本文并沒(méi)有采用復(fù)雜的 SQL, ORICLE 等數(shù)據(jù)庫(kù),而是通過(guò) hibernate 框架對(duì)數(shù)據(jù)進(jìn)行映射,然后利 用 *. 將數(shù)據(jù)進(jìn)行存儲(chǔ)。服務(wù)器一般同時(shí)為多個(gè)客戶提供服務(wù),這就造成了服務(wù)器設(shè)計(jì)的復(fù)雜性。 比如亂碼問(wèn)題,比如 socket 問(wèn)題,許許多多,但是從中多虧了導(dǎo)師的幫助,我才能順利的 解決,所以我在這里衷心的感謝我的導(dǎo)師我的同學(xué),感謝大家對(duì)我的幫助,才讓我能順利的完成畢業(yè)設(shè)計(jì)! 其次,本即時(shí)聊天系統(tǒng)采用了 C/S 模型。 lazy 指定是否采用延遲加載及加載策略 ,設(shè)置為 false,表示 此關(guān)聯(lián)對(duì)象不采用延遲加載 。 數(shù)據(jù)庫(kù)設(shè)計(jì) 在前文我們已經(jīng)分析了數(shù)據(jù)庫(kù)的實(shí)現(xiàn)是采用了 hibernate 框架中的 .XML 映射。如果流是網(wǎng)絡(luò)套接字流,則可以在另一臺(tái)主機(jī)上或另一個(gè)進(jìn)程中重構(gòu)對(duì)象??梢允褂? ObjectInputStream 讀?。ㄖ貥?gòu))對(duì)象。 //收來(lái)自服務(wù)器的信息 由于上文以對(duì)很多方法進(jìn)行講解,現(xiàn)主要對(duì) ObjectOutputStream 進(jìn)行講解。 = strLoginName。 toServer=new Socket(strServerIp,1001)。 (2)信息輸出 本即時(shí)聊天系統(tǒng)的信息輸出原理是將所有輸入信息通過(guò) socket 類向服務(wù)器發(fā)送,然后直接從服務(wù)器中突出信息。參數(shù) strServerIp 為 通信協(xié)議的協(xié)議族 , 1001 則為服務(wù)器 IP。 在上文中,我們講到了 catch 有拋出異常的作用,而 try… catch… 也是具有相同的功能, try 塊塊是需要捕獲異常的,因?yàn)槲募锌赡懿淮嬖?,?huì)導(dǎo)致程序崩潰,所以直接捕獲,也可以直接 throws 出去,讓調(diào)用該方法的方法去捕獲 ,從而使程序能夠正常進(jìn)行。 //清空文本框 ()。 (chatobj)。//向服務(wù)器發(fā)送信息 try{ Socket toServer=new Socket(strServerIp,1001)。 =(())。關(guān)鍵代碼如下: public void sendMessage() { =strLoginName。 (1)信息發(fā)送 用戶在每次發(fā)送信息時(shí),首先向服務(wù)器發(fā)送的是自己信息和發(fā)送對(duì)象信息,然后再通過(guò) Socket 類向服務(wù)器發(fā)送信息。 使用 Socket 對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開(kāi)會(huì)話;會(huì)話完成后,關(guān)閉Socket。執(zhí)行完一 次循環(huán)后 i 的值自動(dòng)加 1,這里的20 ()表示在線用戶的人數(shù), (User)表示顯示用戶的昵稱。 } 這里采用了 for 循環(huán),定義變量 i,初值為 0,只要 i 滿足 。i++) { String User=(String)(i)。 其實(shí)現(xiàn)代碼如下: for (int i=0。 在線用戶顯示設(shè)計(jì) 用戶完成登錄后,客戶端與服務(wù)器端建立連接。 } } } 該語(yǔ)句表示的意思為接受用戶登陸信息,如果用戶名或者密碼為空,則彈出提示信息,如果不為空,則調(diào)用 login 方法。 } else { strServerIp=()。 if ((btnLogin)) { if(().equals() || ().equals()) { JOptionPane op1=new JOptionPane()。最后,如果通過(guò)驗(yàn)證,得到一個(gè)標(biāo)志,進(jìn)入聊天主窗體,否則彈出登錄失敗的對(duì)話框,讓用戶重新登錄。從中獲取登錄填寫的信息,根據(jù)用戶名和密碼在數(shù)據(jù)庫(kù)中查找數(shù)據(jù),如果能夠找 到表示登錄成功,反之,登錄不成功。而在服務(wù)器端,有一個(gè)主線程專門創(chuàng)建 SOCKET 服務(wù),等待客戶端的連接,每當(dāng)客戶端發(fā)起連接的申請(qǐng)時(shí),與之建立連接,并創(chuàng)建一個(gè)線程,將建立的連接交給這個(gè)線程處理,并將連接存入一個(gè)集合中,用于后續(xù)業(yè)務(wù)的處理。見(jiàn)圖 7。如在類 Register 中,當(dāng)鼠標(biāo)點(diǎn)擊“確定”按鈕時(shí),則會(huì)觸發(fā)類 JButton 定義的變量 btnOk,并且為其賦值,進(jìn)而調(diào)用setToolTipText 方法,將注冊(cè)信息進(jìn)行保存。 JButton btnOk,btnCancel,btnClear。 (250,135,80,25)。)。 (39。 JButton btnOk,btnCancel,btnClear。 符合 不符合 登陸系統(tǒng) 輸入帳號(hào)密碼 驗(yàn)證 進(jìn)入系統(tǒng) 17 現(xiàn)對(duì)部分關(guān)鍵語(yǔ)句進(jìn)行講解。 用戶注冊(cè)模塊 當(dāng)用 戶向服務(wù)器端發(fā)出注冊(cè)請(qǐng)求后,客戶端將向服務(wù)器發(fā)送客戶傳遞的信息,諸如客戶的昵稱、性別、個(gè)人資料等信息。服務(wù)器與客戶都通過(guò)構(gòu)造 BufferedReader、PrintWriter 來(lái)建立輸入流和輸出流,雙方通過(guò)該輸入流和輸出流來(lái)相互傳遞信息。下面就來(lái)解決這樣一個(gè)問(wèn)題。新建用戶的過(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è)成功信息。 16 圖 5 用戶登錄流程圖 注冊(cè)處理模塊 新建用戶是即時(shí)通訊工具的一個(gè)基本功能。服務(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)的登錄模塊是比較重要的,這是用戶的一個(gè)身份驗(yàn)證,是通訊系統(tǒng)必須的一個(gè)功能模塊。 Connection con 表示連接用戶信息。 } } catch (IOException e) { log(e, 不能監(jiān)聽(tīng)! )。 public void run() { try {while (start) { Socket client = ()。 } 這是一條 if 條件判斷語(yǔ)句,它表示變量 start 如果不為空,那么執(zhí)行語(yǔ)句第一個(gè)大括號(hào)中的語(yǔ)句,如果為空,則執(zhí)行 else 中的語(yǔ)句。 log(null,服務(wù)器已啟動(dòng) .. )。值得強(qiáng)調(diào)的是布爾型數(shù)據(jù)只有兩個(gè)值 true 和 false,并且它們不對(duì)應(yīng)人數(shù)整數(shù)值。其中, static 是關(guān)鍵字,表示靜態(tài)變量, Boolean 表示變量類型為布爾型,變量名為 newMessage。這條語(yǔ)言表示的意思就是聲明一個(gè)公共類 AppServer,用子類 Thread 繼承父類AppServer 中的一些變量。 圖 4 服務(wù)器啟動(dòng)界面 現(xiàn)就其中一些核心代碼進(jìn)行講解 。客戶端只在需要的時(shí)候向服務(wù)器端發(fā) 出連接請(qǐng)求。主服務(wù)器類調(diào)用 ServerThread 類,而每個(gè) ServerThread 實(shí)體就是一個(gè)獨(dú)立的線程,剛好對(duì)應(yīng)于客戶端的連接請(qǐng)求響應(yīng)線程。 針對(duì) TCP/IP 協(xié)議的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)服務(wù)器的程序結(jié)構(gòu)需要考慮以下的因素: 14 (1)多線程; (2)多進(jìn)程 ; (3)單線程。下面就服務(wù)器端的相關(guān)程序模塊進(jìn)行設(shè)計(jì),并一定程度上實(shí)現(xiàn)了相關(guān)功能。在中,各表的映射文件可以通過(guò)工具生成,在本系統(tǒng)中,用戶表信息可以用 Xml 代碼 實(shí)現(xiàn)。 數(shù)據(jù)庫(kù)概要設(shè)計(jì) 因?yàn)楸鞠到y(tǒng)采用的是 2 級(jí) C
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1