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

正文內(nèi)容

基于java的聊天室設(shè)計與實現(xiàn)畢業(yè)論文(更新版)

2025-01-01 03:41上一頁面

下一頁面
  

【正文】 //把從服務器獲得消息,顯示到該顯示的聊天界面 (m)。 } } ( 12) ManageClientConServerThread 類的源代碼: package 。 29 private String sender。 } public void setCon(String con) { = con。//表明登錄失敗 String message_m_mes=3。 } } 。 public class User implements { private String userId。 } public void setSendTime(String sendTime) { = sendTime。 private String sendTime。 public class ManageClientConServerThread{ private static HashMap hm=new HashMapString, ClientConServerThread()。 } } } } ( 11) ManageChat 類的源代碼: package 。 } public void run() { while(true) { //不停的讀取從服務器發(fā)來的消息 try{ ObjectInputStream ois=new ObjectInputStream(())。 import .*。 26 //關(guān)閉 Scoket ()。 (o)。 import .*。 } } } } ( 7) ManageClientThread 類的源代碼: package 。 //Thread tSend。 //import 。 }else{ (2)。 (服務器接收到用戶 id:+()+ 密碼 :+())。 import .*。 (jpl)。 public static void main(String[] args) { ServerFrame sf=new ServerFrame()。 }catch(Exception ex){ ()。 } //寫一個方法,讓它顯示消息 public void showMessage(Message m) { String info=()+ 說 :+()+\r\n。 jpl=new JPanel()。 JButton jb。 import .*。 }finally{ //關(guān)閉 try { ()。 } catch (SQLException e1) { // TODO Autogenerated catch block ()。 ()。 (jpf1)。 =1。 =。 GridBagConstraints gc3=new GridBagConstraints()。 =1。 =。 jpf2=new JPasswordField()。 } public Register() { jpl1=new JPanel()。 import .*。 //把聊天界面加入到管理類 ((),chat)。 (300,200)。 (jbl2)。 =1。 =3。 =new Insets(10,10,10,10)。 jb2=new JButton(注冊 )。 jpl2=new JPanel()。 JPanel jpl1。 13 附錄 ( 1)登錄界面源代碼: package 。可以這樣說,用計算機來解決繁重而低效的手工管理工作,計算機發(fā)展史上的必然。 在學習期間,本人還通過網(wǎng)上的各種 JAVA 源碼進行學習與研究,我原以為這樣的設(shè)計水平將無法完成畢業(yè)設(shè)計,但當掌握了大部分應用技巧時,剩下的聊天系統(tǒng)思路的設(shè)計就顯得不是最大的障礙了。 ( 4) 也沒有詳細考慮 到 服務器端對的 聊天室管理功能。 ( 2)測試方法 根據(jù)工作過程,來啟動程序,如果在啟動某一程序時出現(xiàn)了錯誤,先查看錯誤信息,然后再啟動的程序的類里面尋找問題,并多使用 方法來打印一些提示的話語,方便自己知道程序運行到了哪一步,是從哪里開始程序沒再運行了,通過這樣的測試方法就可以慢慢的找到錯誤的根源,從而不斷完善聊天室的功能。 ManageChat 則是將所有用戶的聊天界面放在一個 hashmap 里管理起來,當遍歷這個 hashmap 時,就可以將消息顯示在所有用戶的聊天界面了。 類視圖 1 如圖 所示 : 圖 類視圖 1 這是服務器端的開發(fā), model 層中的類是在后臺運行 的程序, view 層中的類是服務器界面,啟動服務器其實是調(diào)用的 Server 類,這個類才是真正的服務器。如果是發(fā)送給所有人,就遍歷管理服務器連接所有人線程的 hashmap,得到連接所有人的線程,將消息發(fā)送給所有人,而客戶端則遍歷管理所有人的聊天界面的 hashmap,得到所有人的聊天界面,將消息發(fā)送到所有人的界面上。 注冊界面的實現(xiàn) 注冊界面的實現(xiàn)如圖 所示: 圖 注冊界面 該界面主要用的了 4 個 Jlabel 分別是 4 個填寫文字的部分,然后一個 JtextField 和 2 個JpasswordField,用來填寫要注冊的賬號和密碼。 客戶端模塊分析 客戶通過 Socket(IAddress,port)建立與服務器的連接。 ( 2) 用戶可 以注冊賬號 。簡單分析一下兩個方面所要完成的任務,對設(shè)計這個程序來說,等于完成了一半。 主要使用 Sun 公司提供 Java 語言、 jdk 開發(fā)環(huán)境及套接字通信 socket 技術(shù), 并利用 MyEclipse來進行開發(fā),來是實現(xiàn) 對服務器端和客戶端之間相互交流 的 功能。前臺采用的 java 語言采用C/S 架構(gòu)來設(shè)計聊天室 ,而后臺則采用 SQL Server2020 創(chuàng)建的數(shù)據(jù)庫和表格來管理用戶的信息。 本文中主要 闡述的是 java 聊天室的設(shè)計過程,以及聊天功能的實現(xiàn)。從而客戶與客戶之間以及客戶與服務器之間可以簡單方便地進行通信。服務器端程序主要負責偵聽客戶端發(fā)來的消息,客戶端需登錄到服務端才可以實現(xiàn)正常的聊天功能。 客戶端的主要功能如 下: ( 1) 連接到已經(jīng)開啟服務的服務端。服務器采用多線程以滿足多用戶的請求,并通過創(chuàng)建一個 ServerSocket 對象來監(jiān)聽來自客戶的連接請求,默認端口為8888,然后無限循環(huán)調(diào)用 accept()方法接受客戶程序的連接。當填寫了正確的賬號和密碼后點擊登錄按鈕可以進入聊天界面,錯誤則提示“用戶名或密碼錯誤”:點擊注冊按鈕則可以進入注冊賬號的界面。 聊天功能的實現(xiàn) 用戶在聊天界面點擊發(fā)送按鈕后,消息發(fā)送到服務器,服務器的消息進行分析,如果是私聊,分析出發(fā)送這和接收者后,將 消息轉(zhuǎn)發(fā)給接收者。分好工作區(qū),建好要用到的包,如:界面就寫在名為 view 的包里面,后臺運行的類就寫在 model 包里面等。這里的客戶端連接服務器的線程類 ClientConServerThread 是用來讀取從服務器發(fā)來的消息,并顯示數(shù)來的。 聊天室功能的測試 ( 1)工作過程 首先啟動服務器,如果啟動成功,會再控制臺打印出“在 9999 端口監(jiān)聽”,然后再運行用戶登錄的類點擊注冊賬號,賬號注冊成功后再回到登錄界面進行登錄,點擊登錄按鈕就可以進入聊天室了。 ( 2) 聊天系統(tǒng)缺乏各種屏蔽發(fā)言、 發(fā)送表情 、踢人等功能; ( 3)因為電腦無法連接數(shù)據(jù)源,導致數(shù)據(jù)庫不能被程序使用,所以注冊功能最終也沒有實現(xiàn)。 平時自己也常到其它聊天室進行聊天,因此,自己也曾想過以后學會了電腦就一定親 自設(shè)計一款聊天系統(tǒng),如今,總算實現(xiàn)了自己的夢想。 這次的畢業(yè)設(shè)計讓我受益匪淺。最后,請允許我再一次向畢業(yè)期間無私幫助過我的老師,同學和朋友表示最衷心的感謝。 public class ClientLogin extends JFrame implements ActionListener { //定義上面的組件 JLabel jbl1。 } public ClientLogin() { jpl1=new JPanel()。 (this)。 =1。 (jbl2, gc2)。 =1。 (jbl1)。 (jpl2,South)。 if((u)) { Chat chat=new Chat(())。 import .*。 public static void main(String[] args) { // TODO Autogenerated method stub Register rgt=new Register()。 jpf1=new JPasswordField()。//創(chuàng)建約束對象 (gbl)。 =。 17 (jtf, gc2)。 =new Insets(0,0,10,10)。 =3。 (jbl3)。 (300,260)。 } try { sm=()。 } } catch (ClassNotFoundException e1) { // TODO Autogenerated catch block 19 ()。 import .*。 JTextField jtf。 (this)。 (true)。 (m)。 JButton jb1,jb2。 (jb2)。 import .*。 User u=(User)()。 //啟動與該客戶端保持通信的線程 ()。 import .*。 Message m=(Message)()。 } }catch(Exception e){ ()。 import .*。 ObjectOutputStream oos=new ObjectOutputStream(())。 }else{ b=false。 import .*。 } //構(gòu)造函數(shù) public ClientConServerThread(Socket s) { =s。 } }catch(Exception e){ ()。 import 。 private String con。 } public String getSendTime() { return sendTime。//普通信息包 } ( 15) User 類的源代碼: /** * 這是用戶信息類 */ package
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1