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

正文內(nèi)容

基于socket的多客戶(hù)端網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)-53頁(yè)-預(yù)覽頁(yè)

 

【正文】 stem. Key words: LAN Chat Socket Java Eclipse 莆田 學(xué)院 2020 屆本科畢業(yè)論文 3 前言 隨著第三次技術(shù)革命的展開(kāi),互聯(lián)網(wǎng)進(jìn)入了千家萬(wàn)戶(hù),人們的生活隨著網(wǎng)絡(luò)的發(fā)展也發(fā)生著翻天覆地的變化。開(kāi)發(fā)中使用了計(jì)算機(jī)網(wǎng)絡(luò)編程技術(shù),如 C/S 模式,多線(xiàn)程技術(shù),網(wǎng)絡(luò)通信等等。該系統(tǒng)的開(kāi)發(fā)主要是服務(wù)器端和客戶(hù)端兩個(gè)方面。市場(chǎng)上有很多優(yōu)秀的聊天工具,用的最廣范的最被人們所接受的有騰訊 、 MSN、人人網(wǎng)等等,但此 簡(jiǎn)易 聊天工具是專(zhuān)門(mén)針對(duì)學(xué)校內(nèi)部的特點(diǎn)使其在網(wǎng)絡(luò)聊天產(chǎn)業(yè)中占有一席之地。其中用到了局域網(wǎng)通信機(jī)制的原理,通過(guò)實(shí)現(xiàn) Runnable 接口建立多線(xiàn)程機(jī)制。首先建立系統(tǒng)應(yīng)用原型,然后進(jìn)行修正和改進(jìn),直到完成可發(fā)布版系統(tǒng)。它的主要功能就是聊天,提供了一個(gè)人與人之間開(kāi)展人際交流的平臺(tái)。 1 JAVA 的功能與編程 1. 1 Java 的概述 上世紀(jì), Sun公司根據(jù)需要開(kāi)發(fā)出一種不同與以往語(yǔ)言的編程語(yǔ)言 —— Java。向迅速發(fā)展起來(lái)的信息世界增添了新的活力。在設(shè)計(jì)中 Gosling 采用了在一個(gè)操作系統(tǒng)上以虛擬機(jī)的方式運(yùn)行,這樣一來(lái), Java就具備了平臺(tái)無(wú)關(guān)性。它具有使用方便、費(fèi)用低廉和管理方便的優(yōu)點(diǎn)。 隨著 Java 的誕生計(jì)算機(jī)信息的交換進(jìn)入了一個(gè)非常重要的里程碑。 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 4 Java的產(chǎn)生和互聯(lián)網(wǎng)的崛起使得笨重繁雜的應(yīng)用程序開(kāi)始向小型化發(fā)展, Java使得互相協(xié)作的可執(zhí)行的實(shí)體進(jìn)行數(shù)據(jù)的傳送與處理。隨著 Java和 Inter的發(fā)展,應(yīng)用軟件的開(kāi)發(fā) 和使用方式正在發(fā)生著翻天覆地的變化,傳統(tǒng)的信息處理工具必然將被淘汰,因?yàn)樾畔⒅挥泄蚕砗褪褂弥胁艜?huì)體現(xiàn)它的價(jià)值。 2) Java放棄了 C++語(yǔ)言中容易引發(fā)程序指針和內(nèi)存管理錯(cuò)誤的缺點(diǎn)。用函數(shù)的方式一步步的將這些步驟實(shí)現(xiàn),實(shí)用的時(shí)候依次調(diào)用這些函數(shù)就可以了。提高了代碼的復(fù)用性 Java是面向?qū)ο蟮恼Z(yǔ)言。 防止程序員在編寫(xiě)程序時(shí)因忘記寫(xiě)內(nèi)存管理代碼而產(chǎn)生的錯(cuò)誤。 平臺(tái)無(wú)關(guān)性在體系結(jié)構(gòu)中是獨(dú)立的。 多線(xiàn)程功 能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)進(jìn)程。 隨著面向?qū)ο笤O(shè)計(jì)方法的發(fā)展, Java的動(dòng)態(tài)性也隨之產(chǎn)生。這些由 Java 語(yǔ)言編寫(xiě)的程序嵌入在特定的容器中;通??梢耘c用戶(hù)進(jìn)行交互式交流,產(chǎn)生特定的效果。 它支持統(tǒng)一資源定位符連接 ,簡(jiǎn)化了程序設(shè)計(jì)。使得變量可以被其他類(lèi)所 訪(fǎng)問(wèn)和修改。使程序更結(jié)構(gòu)化。 在 Java中類(lèi)型的轉(zhuǎn)換主要包含 3中情況,分別為自動(dòng)轉(zhuǎn)換、強(qiáng)制轉(zhuǎn)換。 Java 應(yīng)用于網(wǎng)絡(luò) 網(wǎng)絡(luò)上的文本、音頻、視頻等資源可以被 Java 程序獲得。 例如: Java 從網(wǎng)絡(luò)上獲取圖像并且加以顯示, Java 中提供了相應(yīng)的方法。 } 莆田 學(xué)院 2020 屆本科畢業(yè)論文 7 catch(Exception e){ (“Can’t open the URL “)。 }catch (MalformedURLException e) { (“Can’t open the URL “)。 IP/TCP (1)IP、 TCP協(xié)議的特點(diǎn): TCP/IP( Transmission Control Protocol/Inter Protocol)傳輸控制協(xié)議 /網(wǎng)際協(xié)議。 傳輸層 此層提供了點(diǎn)到點(diǎn)之間數(shù)據(jù)傳輸服務(wù)。 TCP 協(xié)議的功能: TCP 是 在傳輸層,提供了面向連接的數(shù)據(jù)包傳送服務(wù),保證數(shù)據(jù)包能夠正確的被傳送與接收,包含內(nèi)容的效驗(yàn)與包的順序,損壞的包可以被重傳。 允許 IP協(xié)議在各種不同的網(wǎng)絡(luò)上運(yùn)行,具有分配網(wǎng)絡(luò)地址的功能。計(jì)算機(jī)上的同一端口號(hào)只能分配一個(gè)唯一的 ServerSocket對(duì)象,不能存在兩個(gè) ServerSocket 對(duì)象監(jiān)聽(tīng)同一個(gè)端口。用于網(wǎng)絡(luò)建立連接,當(dāng)成功的連接時(shí);在程序的兩端會(huì)產(chǎn)生實(shí)例 ,用于請(qǐng)求和接受會(huì)話(huà),相當(dāng)于一個(gè)管道。 數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通道。 其次: 主機(jī) B 收到主機(jī) A 的請(qǐng)求后 ,必須進(jìn)行同步請(qǐng)求應(yīng)答。 服務(wù)器端應(yīng)當(dāng)建立一個(gè) ServerSocket, 用于 不斷進(jìn)行偵聽(tīng)客戶(hù)端是否有連接 請(qǐng)求 或者斷開(kāi)連接 。 (2) 經(jīng)濟(jì)可行性 在網(wǎng)絡(luò)時(shí)代,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)大范圍的普及,因此在設(shè)備上不需要進(jìn)行大范圍的投入。因此開(kāi)發(fā) 簡(jiǎn)易 聊天工具是相當(dāng)有必要的。 首先要先了解一下 服務(wù)器端和客戶(hù)端 要完成的任務(wù),了解了這些那么任務(wù)就 完成了一半。 與 服務(wù)器 相比 ,客戶(hù)端的任務(wù)更加簡(jiǎn)單, 通過(guò) 分析, 我們 可以 了解 , 簡(jiǎn)易 聊天工具系統(tǒng)的核心 就是這些問(wèn)題 。用戶(hù)以客戶(hù)端為平臺(tái)連接到服務(wù)器,那么用戶(hù)在同一服務(wù)器上就可以聊天了。 3 .3 簡(jiǎn)易 聊天工具系統(tǒng)的設(shè)計(jì)步驟及功能模塊劃分 聊天系統(tǒng)工作原理圖如下: 圖 6 工作原理圖 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 14 簡(jiǎn)易 聊天工具系統(tǒng)各功能模塊 服務(wù)器端功能: 服 務(wù) 器 端啟動(dòng)與停止服務(wù)查看在線(xiàn)用戶(hù)詳細(xì)信息修改學(xué)校信息部門(mén)信息維護(hù)用戶(hù)信息維護(hù)發(fā)送信息 圖 7 服務(wù)器功能 服務(wù)器端的主要功能包括:?jiǎn)?dòng)服務(wù)、停止服務(wù)、在線(xiàn)用戶(hù)詳細(xì)信息的查看、發(fā)送接受到的客戶(hù)端信息、修改學(xué)校信息、部門(mén)信息的維護(hù)、用戶(hù)信息的維護(hù) 。 import 。 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 16 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 private JLabel label_NetOption = new JLabel()。 private JButton button_Exit = new JButton(退 出 )。 private user_add_JDialog user_add_JDialog = null。 private String name_ID = null。 (false)。 ()。 JLabel l = new JLabel(i)。 (bl)。 Border border3 = (border2, 登錄 )。 //(border2)。 //(new Dimension(50,23))。 (boBox_ID)。 (label_Password)。)。 ((new Dimension(1,10)))。 } /** * 生成一個(gè)按鈕區(qū)域的 JPanel * return 一個(gè)按鈕區(qū)域的 JPanel */ private JPanel makeButton(){ JPanel p = new JPanel()。 (new Dimension(70,23))。 (new Dimension(70,23))。 ()。 ()。 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 24 ((),)。 Border border1 = (5,5,5,5)。 (border)。 JPanel panel1 = new JPanel()。 (new Dimension(175,23))。 JLabel label2 = new JLabel(端 口 號(hào) :)。 (textField_Port)。 return panel。 莆田 學(xué)院 2020 屆本科畢業(yè)論文 27 String id = ().toString()。 BufferedReader bufferedReader = null。 bufferedReader = new BufferedReader(fileReader)。 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 28 fileWriter = new FileWriter(file, false)。 } catch (FileNotFoundException e1) { //()。 } try { ()。 BufferedReader bufferedReader = null。 VectorString idReverse = new VectorString()。 while(()){ (())。 }finally{ try { ()。 } } } /** 莆田 學(xué)院 2020 屆本科畢業(yè)論文 31 * 獲得設(shè)置按鈕 * return 設(shè)置按鈕 */ public JButton getButton_NetOption() { return button_NetOption。 } /** * 獲得登錄按鈕 * return 登錄按鈕 */ public JButton getButton_Login() { return button_Login。 } /** * 獲得端口輸入框 * return 端口輸入框 */ public JTextField getTextField_Port() { 基于 Socket的 簡(jiǎn)易 網(wǎng)絡(luò)聊天系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì) 34 return textField_Port。 } public ObjectOutputStream getObjectOutputStream() { return objectOutputStream??蛻?hù)端然后向服務(wù)器發(fā)送請(qǐng)求,比如文件傳輸?shù)龋蛻?hù)端的請(qǐng)求服務(wù)器收到后,針對(duì)不同的消息做出處理請(qǐng)求。 import 。 import 。 import 。 /** * 這是一個(gè)按鈕監(jiān)聽(tīng)類(lèi),它實(shí)現(xiàn)了 接口。 } })。 //如果當(dāng)前為最大化狀態(tài) ,聊天記錄面板在不可視后仍然以最大化狀顯示 if( == ()){ ()。 } ()。 //否則根據(jù)當(dāng)前大小進(jìn)行設(shè)大小 :寬度 不變 ,高度 +130 }else{ int width = 莆田 學(xué)院 2020 屆本科畢業(yè)論文 41 (int)().getWidth()。 } // 發(fā)送 } else if (() == ()) { Package qqPackage_Chat = new Package()。 } String to = ()。 String input = ().getText()。 return。 String self = 我 + + time + 對(duì) + to + 說(shuō) : + \n + + input + \n。 ().append(self)。 String time = ()。 } } ObjectOutputStream objectOutputStream = null。 ()。 // 修改密碼 }else if (() == ()){ new ResetPassword_JDialog(qq_Chat_JFrame)。 ()。 try { objectOutputStream = ()。 } (0)。 功能模塊的測(cè)試 本次課設(shè)的編譯環(huán)境,及 編寫(xiě)平臺(tái)為 Java。 步 驟 操作描述 數(shù)據(jù) 期望結(jié)果 實(shí)際結(jié)果 1 連接服務(wù)器 / 彈出“開(kāi)啟服務(wù)” 同期望結(jié)果 2 信息維護(hù) / 彈出相應(yīng)的窗體 同期望結(jié)果 3 信息的發(fā)送 / 在信息框中出現(xiàn)相應(yīng)的信息 同期望結(jié)果 客戶(hù)端首先進(jìn)行用戶(hù)的登錄,向服務(wù)器發(fā)送連接請(qǐng)求;連接服務(wù)器。從開(kāi)始前的茫茫然對(duì)自己知識(shí)感到匱乏,到之后畢業(yè)設(shè)計(jì)期間,通過(guò)努力的在圖書(shū)館查閱資料和請(qǐng)教同學(xué)和老師,我逐步的完成了系統(tǒng)的設(shè)計(jì),我由衷的感到了成功的喜悅和自豪。使我了解了項(xiàng)目的開(kāi)展過(guò)程,從項(xiàng)目開(kāi)始前的需求分析,到進(jìn)行時(shí)的結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)代碼的編寫(xiě),最后的測(cè)試程序。這將是我人生中寶貴的財(cái)富, 為我之后的工作提供了良好的基礎(chǔ)和寶貴的經(jīng)驗(yàn)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1