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

正文內(nèi)容

本科畢業(yè)論文-基于java的多人網(wǎng)絡(luò)聊天室設(shè)計(jì)-免費(fèi)閱讀

2025-02-11 15:53 上一頁面

下一頁面
  

【正文】 } } } catch (Exception e) { ()。 sendFileToOne()。 //廣播文本信息 case : (message:廣播消息)。 out = ()。 } } public static void main(String []args){ Server server = new Server()。 } }} 服務(wù)器端實(shí)現(xiàn)關(guān)鍵代碼:public class Server { //系統(tǒng)所有用戶的信息 private HashMapString,UserInfo users。 (null)。 () .setValue( () .getMaximum())。 ((), out)。 ().setValue( ().getMaximum())。 while(true){ (buf,0,loaded)。 (總大?。?len)。 i ()。 (, out)。 } // 顯示群聊信息 public void showAllMessage(String from, String message) { (() + from + 說:\n + message + \n)。 ((), out)。 i ().size()。 } // 沒有目標(biāo)對(duì)象就是群聊 if ((ALL)) { (, out)。 (new Rectangle(193, 254, 138, 49))。 (getJScrollPane(), null)。 (getJPanel(), null)。 } })。 } catch (IOException e) { // TODO 自動(dòng)生成 catch 塊 ()。 } return jTextArea。 i ().size()。 private OutputStream out。 private JPanel jPanel = null。 } DefaultMutableTreeNode friend = new DefaultMutableTreeNode ((i))。 } } } return null。i().size()。 } public void openTalkingWindow(DefaultMutableTreeNode node){ if(node==null){ //進(jìn)入群聊 if(!checkTalkWindowHasOpenedByTargetUserId(ALL)){ TalkWindow tw = new TalkWindow(me,ALL,)。 } /** * This method initializes jScrollPane * * return */ private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane()。 (getJScrollPane(), null)。 (false)。 (this)。 private JTree jTree = null。 ((), out)。 }else{ if(in==null){ in = ().getInputStream()。amp。 (new () { public void actionPerformed( e) { //如果點(diǎn)擊了去登陸按鈕 //關(guān)閉注冊(cè)框 closeFrame()。 (new Rectangle(146, 221, 131, 49))。 } return jTextFieldRegUserName。 (getJTextFieldRegUserName(), null)。 (new Rectangle(15, 31, 357, 47))。 (new Rectangle(15, 162, 357, 47))。 (new Dimension(398, 337))。 // jve:declindex=0: private GetServerInfo gif。 private JLabel jLabelRegRepassword = null。 (new () { public void actionPerformed( e) { //如果點(diǎn)擊了去注冊(cè)按鈕 //關(guān)閉登陸框 closeFrame()。 //發(fā)送登陸請(qǐng)求 (, out)。()!=nullamp。 (new () { public void actionPerformed( e) { //當(dāng)點(diǎn)擊了登陸按鈕時(shí),調(diào)用登陸方法 doLogin()。 } /** * This method initializes jTextFieldLoginPassword * * return */ private JTextField getJTextFieldLoginPassword() { if (jTextFieldLoginPassword == null) { jTextFieldLoginPassword = new JPasswordField()。 (getJButtonLogin(), null)。 (new Font(Dialog, , 14))。 } })。 } /** * This method initializes jFrame * * return */ public void closeFrame(){ ()。 public JButton jButtonLogin = null。 根據(jù)流程圖我們可以得出用戶首先要通過登錄界面成功通過用戶名和用戶密碼的驗(yàn)證,就可以成功進(jìn)入聊天室進(jìn)行多人聊天和用戶私聊,如果沒有帳號(hào),則需要通過注冊(cè)將用戶信息存儲(chǔ)到服務(wù)器端,然后登錄。用戶列表信息界面是要在成功登錄后,彈出的一個(gè)展示用戶的好友信息的一個(gè)列表,在上面有一個(gè)群聊按鈕,點(diǎn)擊群聊按鈕將會(huì)彈出群聊窗口進(jìn)行多人聊天,也可以雙擊好友昵稱進(jìn)行私聊,這個(gè)功能是通過界面的點(diǎn)擊事件,然后傳遞信息的,觸發(fā)事件之后通過數(shù)據(jù)流和節(jié)點(diǎn)處理進(jìn)行分析和處理,從而判斷用戶是否要使用私聊或者使用群聊。第3章 關(guān)于多人聊天室的分析和設(shè)計(jì)Java語言,它是一種方便我們?nèi)ダ斫庖卜奖阄覀內(nèi)ピO(shè)計(jì)和開發(fā)的編程語言,它相較于其他的編程語言,有許多別的不具有的優(yōu)勢(shì),這種編程語言是比較簡(jiǎn)單的,它不受限與操作系統(tǒng)平臺(tái),然后它是在C++的基礎(chǔ)上進(jìn)化過來的,所以它的身上還有很多C語言的痕跡,java語言相對(duì)于別的編程語言它是出現(xiàn)的比較晚的,這也決定了他的先進(jìn)性。Toolkit),即為抽象窗口工具包,是由sun公司提供使用的用于圖像界面編程(gui)的一個(gè)包。RandomAccessFile在對(duì)文件進(jìn)行隨機(jī)訪問操作時(shí)有兩個(gè)模式,分別為只讀模式(只讀取文件數(shù)據(jù)),和讀寫模式(對(duì)文件數(shù)據(jù)進(jìn)行讀寫)。Socket封裝這本地的地址,服務(wù)端口等信息,ServerSocket:服務(wù)端套接字。而TCP/IP通訊協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。在多人聊天室中我們把這個(gè)技術(shù)運(yùn)用到用戶聊天這個(gè)功能當(dāng)中,實(shí)現(xiàn)用戶的群聊和私聊。第2章 系統(tǒng)概況 :用戶需要輸入昵稱和密碼,并且昵稱是沒有被占用且合法的,而密碼和輸入的重復(fù)密碼也是一致的,才會(huì)提示注冊(cè)成功;:用戶需要輸入相應(yīng)的用戶昵稱和用戶密碼,這樣用戶才能登陸通過,然后轉(zhuǎn)到用戶列表信息界面,如若用戶昵稱和用戶密碼都輸入錯(cuò)誤,那么我們會(huì)彈出一個(gè)信息提示框,提示用戶信息輸入錯(cuò)誤和登陸失敗。目錄第1章 緒論 3 3 4第2章 系統(tǒng)概況 4 4 4 java多線程技術(shù) 4 TCP/IP協(xié)議 5 java數(shù)據(jù)流技術(shù) 6第3章 關(guān)于多人聊天室的分析和設(shè)計(jì) 7 7 7 8 8 服務(wù)器端系統(tǒng)分析 9 10第4章 系統(tǒng)實(shí)現(xiàn) 11 客戶端界面和功能實(shí)現(xiàn) 11 登錄和注冊(cè)界面 11 用戶列表界面 21 聊天窗口和文件傳輸界面 26 服務(wù)器端實(shí)現(xiàn) 35第5章 結(jié)束語 41參考文獻(xiàn) 41 第1章 緒論在信息爆炸的今天信息的溝通和交流已經(jīng)和我們息息相關(guān)。摘 要隨著信息革命的到來,使用網(wǎng)絡(luò)工具進(jìn)行交流已經(jīng)成為我們平常生活里不可或缺也脫離不開的一件事,相比較與使用手機(jī)通訊和短信交流,它們過于繁瑣和昂貴,而網(wǎng)絡(luò)通信工具由于使用方便、傳遞信息的即時(shí)性,特別是眾多青少年人的追捧和使用。盡管一些通信工具和通信手段,例如手機(jī)和電話,可是手機(jī)短信和電話通訊相對(duì)于網(wǎng)絡(luò)通信工具日積月累下來花費(fèi)也是相當(dāng)不菲;所以一般的通信工具對(duì)于長(zhǎng)時(shí)間的溝通和交流以及大量的信息傳輸都是相當(dāng)不便和不劃算的。 :用戶聊天分為私聊和群聊,群聊不指定任何用戶,即所有用戶都可以接受信息和回復(fù)信息,私聊即指定用戶接受信息,具有隱秘性; :用戶之間可以共享發(fā)送文件和資料,在聊天界面點(diǎn)擊發(fā)送文件按鈕,然后選擇文件發(fā)送即可; java多線程技術(shù)什么是進(jìn)程,進(jìn)程process是一個(gè)占有資源和需要消耗資源的內(nèi)存區(qū)域,我們根據(jù)他的功能單元會(huì)對(duì)他在操作系統(tǒng)進(jìn)行區(qū)分,進(jìn)程中所包含的一個(gè)或多個(gè)執(zhí)行單元稱為線 程(thread)。 TCP/IP協(xié)議 TCP/IP(Transmission Control Protocol/Internet Protocol)的簡(jiǎn)寫,包含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的網(wǎng)絡(luò)協(xié)議。這4層分別為:應(yīng)用層、傳輸層、互連網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層。永遠(yuǎn)都是socket主動(dòng)去連接ServerSocket,一個(gè)ServerSocket可以連接若干個(gè)Socket。流根據(jù)方向分為輸入和輸出流,方向的定位是根據(jù)我們的程序的,流向我們程序的稱為輸入流,從程序往外流的我們稱為輸出流?;A(chǔ)的使用就是創(chuàng)建一個(gè)label對(duì)象,然后調(diào)用它的方法,使用工具包來創(chuàng)建對(duì)象,易啊不能來說,我們所開發(fā)的界面是可以在所有的操作系統(tǒng)上所使用的,這可以節(jié)省我們很多的麻煩。這也就體現(xiàn)了java語言的通用性和便捷性,使我們不需要為了在不同的平臺(tái)運(yùn)行而去修改程序煩惱,這大大提高了我們程序和代碼的重用性,也同時(shí)提高了我們編程的效率,不過,每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的運(yùn)行效率。 聊天窗口也是作為這個(gè)多人聊天室軟件的主界面,在這個(gè),用戶可以進(jìn)行多人聊天和私聊。出現(xiàn)幾個(gè)客戶端時(shí),服務(wù)端就會(huì)才用多線程技術(shù),這樣客戶端與客戶端的信息才不會(huì)出現(xiàn)混淆,而服務(wù)器端也有一個(gè)線程進(jìn)行專門管理客戶端反饋過來的信息,進(jìn)而提高服務(wù)器的處理效率。 public JButton jButtonReg = null。 (null)。 } return jFrame。 ( Talk號(hào):)。 (getJButtonReg(), null)。 (new Rectangle(84, 111, 266, 33))。 } })。amp。 ((), out)。 //顯示注冊(cè)框 (new Reg(linkInfo))。 private JTextField jTextFieldRegUserName = null。 private LinkInfo linkInfo。 (注冊(cè))。 (new Font(Dialog, , 18))。 (new Font(Dialog, , 18))。 (getJTextFieldRegPassword(), null)。 } /** * This method initializes jTextFieldRegPassword * * return */ private JPasswordField getJTextFieldRegPassword() { if (jTextFieldRegPassword == null) { jTextFieldRegPassword = new JPasswordField()。 (注冊(cè))。 //打開登陸框 (new Login(linkInfo))。()!=nullamp。 } if(out==null){ out = ().getOutputStream()。 ((), out)。 private ArrayListString allFriends。 } public void showAllFriend(ArrayListString allFriends
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1