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

正文內容

基于java的聊天室設計與實現(xiàn)畢業(yè)論文-wenkub.com

2025-02-22 09:50 本頁面
   

【正文】 qYpEh5pDx2zVkum amp。qYpEh5pDx2zVkumamp。qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkum amp。 qYpEh5pDx2z Vkum amp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 qYpEh5pDx2zVkumamp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5ux^Gjqv^$UE9wEwZQcUE% amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gjqv^$UE9wEwZQcUE% amp。849Gx^Gj qv^$UE9wEwZQcUE%amp。 qYpEh5pDx2zVkumamp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。 MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQcUE% amp。 MuWFA5ux^Gj qv^$UE9wEwZQcUE%amp。 MuWFA5uxY7JnD6YWRrWwc^vR9CpbK! zn% Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。 849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQcUE%amp。MuWFA5ux^Gj qv^$UE9wEwZQcUE% amp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQcUE% amp。849Gx^Gj qv^$UE9wEwZQcUE%amp。cdPq 9JWKf wvGt YM*Jgamp。 d39。 } public void setUserId(String userId) { = userId。//普通信息包 } ( 15) User 類的源代碼: /** * 這是用戶信息類 */ package 。 } } 30 ( 14) MessageType 類的源代碼: package 。 } public String getSendTime() { return sendTime。 } public String getSender() { return sender。 private String con。 } } ( 13) Message 類的源代碼: package 。 import 。 28 public class ManageChat{ public static HashMap hmChat=new HashMapString,Chat()。 } }catch(Exception e){ ()。(() iter).hasNext()。 } //構造函數(shù) public ClientConServerThread(Socket s) { =s。 import 。 import .*。 } } ( 9) ClientUser 類的源代碼: package 。 }else{ b=false。 //驗證用戶登錄 if(().equals(1)) { //登錄成功就創(chuàng)建一個該用戶與服務器連接通訊的線程 ClientConServerThread ccst=new ClientConServerThread(s)。 ObjectOutputStream oos=new ObjectOutputStream(())。 public class ClientConServer { public Socket s。 import .*。 //想 hm中添加一個客戶端通訊線程 public static void addClientThread (String uid,SerConClientThread ct) { (uid, ct)。 } }catch(Exception e){ ()。) { //遍歷管理服務器連接客戶端的線程的 hashmap,獲得這些線程,并把消息發(fā)送出去 Object key=()。 Message m=(Message)()。 public class SerConClientThread extends Thread { Socket s。 import .*。 } } }catch (Exception e) { ()。 //啟動與該客戶端保持通信的線程 ()。 if(().equals(123456)) { //返回一個成功登陸的信息報 (1)。 User u=(User)()。 public class Server { public Server() { try{ (在 9999監(jiān)聽 )。 import .*。 (true)。 (jb2)。 (this)。 JButton jb1,jb2。 import 。 (m)。 (())。 (true)。 (jta,Center)。 (this)。 public Chat(String ownerId) { =ownerId。 JTextField jtf。 import .*。 import .*。 } } }else if(()==jb2) { ()。 } } catch (ClassNotFoundException e1) { // TODO Autogenerated catch block 19 ()。 String passwd=(2)。 } try { sm=()。 18 Statement sm=null。 (300,260)。 (jb1)。 (jbl3)。 (jpf2, gc4)。 =3。 =。 =new Insets(0,0,10,10)。 =1。 17 (jtf, gc2)。 =3。 =。 =new Insets(10,10,10,10)。//創(chuàng)建約束對象 (gbl)。 jb2=new JButton(取消 )。 jpf1=new JPasswordField()。 jbl2=new JLabel(輸入賬號 ,)。 public static void main(String[] args) { // TODO Autogenerated method stub Register rgt=new Register()。 JLabel jbl1,jbl2,jbl3,jbl4。 import .*。 } } else if(()==jb2) { new Register()。 if((u)) { Chat chat=new Chat(())。 } Override public void actionPerformed(ActionEvent e) { // TODO Autogenerated method stub if(()==jb1) { ClientUser clientUser=new ClientUser()。 (jpl2,South)。 (jpf)。 (jbl1)。 =1。 =1。 =。 (jbl2, gc2)。//第一行填完,共一個組件 GridBagConstraints gc2=new GridBagConstraints()。 =1。 GridBagConstraints gc1=new GridBagConstraints()。 (this)。 jbl3=new JLabel(密碼 ,)。 } public ClientLogin() { jpl1=new JPanel()。 JPasswordField jpf。 public class ClientLogin extends JFrame implements ActionListener { //定義上面的組件 JLabel jbl1。 import 。最后,請允許我再一次向畢業(yè)期間無私幫助過我的老師,同學和朋友表示最衷心的感謝。從調研,需求分析到查找資料 ,結構設計,詳細設計以及調試程序。 這次的畢業(yè)設計讓我受益匪淺。 11 參考文獻 [1] 王養(yǎng)廷 . JAVA. SE 應用程序設計 [M] . 機械工業(yè)出版社, 2021. 1~3 [2] 張 利國 . JAVA 軟件開發(fā)大師 [M].科學 出版社, ~4 [3] 李剛.瘋狂 JAVA[M].人民郵電出版社, ~6 [4] 孫衛(wèi)琴. JAVA 面向對象編程 [M].電子工業(yè)出版社, ~6 [5] Katthy Sierra.深入淺出 JAVA 程序設計 [M].機械工業(yè)出版社, ~6 [6] Bruce Eckel. Think in java 4[M]. 機械工業(yè) 出版社, ~8 [7] 沃爾斯 . Spring in action[M].人民郵電 出版社, ~7 [8] 楊繼平 . SQL Server2021 自學教程 [M].清華大學出版社 , ~35 [9] 陳曼紅 . 數(shù)據(jù)庫系統(tǒng)原理與自學應用技術 [M].機械工業(yè)出版社 , ~33 [10] 王強 . SQL Server 數(shù)據(jù)庫原理及應用 [M]. 清華大學 出版社, ~33 12 致 謝 緊張而忙碌的畢業(yè)設計就要結束了,在完成了系統(tǒng)的功能設計后,我感到由衷的喜悅和自豪。 平時自己也常到其它聊天室進行聊天,因此,自己也曾想過以后學會了電腦就一定親 自設計一款聊天系統(tǒng),如今,總算實現(xiàn)了自己的夢想。 經(jīng)驗三:這次的課題讓我掌握了一些以前不知道的知 識,比如 hashmap 是不能直接遍歷的,需要用到迭代器 Iterator 來實現(xiàn) 。 ( 2) 聊天系統(tǒng)缺乏各種屏蔽發(fā)言、 發(fā)送表情 、踢人等功能; ( 3)因為電腦無法連接數(shù)據(jù)源,導致數(shù)據(jù)庫不能被程序使用,所以注冊功能最終也沒有實現(xiàn)。但幾乎每一個計算機程序都會有這樣那樣的不足,尤其是未經(jīng)過精心維護的非商業(yè)軟件。 聊天室功能的測試 ( 1)工作過程 首先啟動服務器,如果啟動成功,會再控制臺打印出“在 9999 端口監(jiān)聽”,然后再運行用戶登錄的類點擊注冊賬號,賬號注冊成功后再回到登錄界面進行登錄,點擊登錄按鈕就可以進入聊天室了。其中 Message 類里是發(fā)送信息時用到的構造器, MessageType類里面是服務器驗證登錄后返回的信息, User類里面則是用戶賬號和密碼的構造器。這里的客戶端連接服務器的線程類 ClientConServerThread 是用來讀取從服務器發(fā)來的消息,并顯示數(shù)來的。 同樣在客戶端的開發(fā)也是有良好的分層結構,如圖 所示 : 8 圖 類視圖 2 其中 view 層是 3 個界面類, Chat 是聊天界面類, ClientLogin 是 登陸界面類, Register 是登陸界面類。分好工作區(qū),建好要用到的包,如:界面就寫在名為 view 的包里面,后臺運行的類就寫在 model 包里面等。下載完畢便可安裝 JDK。 聊天功能的實現(xiàn) 用戶在聊天界面點擊發(fā)送按鈕后,消息發(fā)送到服務器,服務器的消息進行分析,如果是私聊,分析出發(fā)送這和接收者后,將 消息轉發(fā)給接收者。 聊天界面的實現(xiàn) 聊天界面的實現(xiàn)如圖 所示: 圖 聊天界面 6 該界面的控件很少,用一個 JtextArea 來顯示用戶們的聊天內容,該空間放在了居中部分。當填寫了正確的賬號和密碼后點擊登錄按鈕可以進入聊天界面,錯誤則提示“用戶名或密碼錯誤”:點擊注冊按鈕則可以進入注冊賬號的界面。 數(shù)據(jù)庫模塊分析 數(shù)據(jù)庫用于管理用戶的信息,當用戶在注冊界面成功注冊了賬號,就存在數(shù)據(jù)庫的用戶表里面,當新用戶注冊時,將新賬號與數(shù)據(jù)庫中
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1