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

正文內(nèi)容

基于cs結(jié)構(gòu)的即時通信系統(tǒng)的設計與實現(xiàn)畢業(yè)設計-在線瀏覽

2024-07-29 15:33本頁面
  

【正文】 不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權(quán)限,服務器數(shù)據(jù)庫也很安全 。TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/網(wǎng)際協(xié)議),是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)的基礎,主要的組成部分是網(wǎng)絡層的IP協(xié)議族和傳輸層的TCP協(xié)議族。協(xié)議采用了 4層的層級結(jié)構(gòu):網(wǎng)絡接口層、網(wǎng)絡層、傳輸層、應用層。網(wǎng)絡層:主要功能是管理Internet地址、路由選擇、數(shù)據(jù)的分片和重組。傳輸層:主要功能是為Internet提供可靠地傳輸控制,主要的協(xié)議包括TCP協(xié)議和UDP協(xié)議。每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。而TCP協(xié)議則解決了數(shù)據(jù)傳輸可靠性的問題。3 即時通信系統(tǒng)分析客戶端可以實現(xiàn)注冊,即時聊天,相互之間收發(fā)文件,發(fā)送截圖,查看歷史聊天記錄等功能。服務器端應當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接(包括判斷沒有響應的連接超時)。在后臺管理系統(tǒng),可以到對用戶進行增刪改查,查看在線用戶,和踢用戶下線。因此技術(shù)上是可以實現(xiàn)的。本系統(tǒng)需要一個MySQL數(shù)據(jù)庫服務器,由于并發(fā)使用人數(shù)比較少,tomcat可以作為web服務器,所以成本很低。如果要實現(xiàn)internet上通訊,只需要將服務器端運行在一個有固定IP的公網(wǎng)上就可以。功能分析:本系統(tǒng)要實現(xiàn)的功能如下:(1)注冊服務器收到用戶的注冊請求,便開始接受客戶傳遞的信息,諸如客戶的呢稱,性別,籍貫,個人資料等,接受完畢后,便通過JDBC與后臺數(shù)據(jù)庫連接,然后向數(shù)據(jù)庫添加記錄,如果成功,便向客戶返回其號碼。(2)登錄在客戶端,用戶輸入其號碼和密碼,然后建立與服務器的連接,告訴服務器我要登錄,服務器收到后,開始通過JDBC讀取數(shù)據(jù)庫,然后與用戶輸入的信息進行比對,如果成功,便打開主程序窗口。(3)聊天客戶端首先發(fā)送消息到服務器端,服務器端根據(jù)發(fā)送人信息和接收者信息來轉(zhuǎn)發(fā)。如果B不在線則把信息儲存在服務器,等B上線了在發(fā)送給他。(4)發(fā)送截圖客戶端A點擊截圖按鈕,將屏幕鎖定,截取圖片,將圖片儲存在byte[]數(shù)組中發(fā)送到服務器端。B接收到A發(fā)來的截圖信息,會根據(jù)byte[]構(gòu)造圖片,將圖片顯示出來。(5)發(fā)送文件客戶端A點擊發(fā)送文件按鍵,從本地選擇文件,將文件在byte[]數(shù)組中分批次發(fā)送到服務器端。B接收到A發(fā)來的文件信息,會根據(jù)文件發(fā)送的狀態(tài)和byte[]構(gòu)造文件[1314]。默認儲存在C盤下面,會以用戶的登錄賬號為名。(8)在線用戶的操作 管理員通過B/S的系統(tǒng)對在線用戶操作,可以踢用戶下線。 ER模型如圖所示passwordNamesignatureaccountUsersexProfileldage圖41系統(tǒng)實體及其屬性表41 User 字段名數(shù)據(jù)類型字段說明鍵引用備注accountint(6)IDPK主鍵(自動增一)namevarchar(20)用戶名稱非空passwordvarchar(20)用戶密碼非空signatureVarchar(255)簽名profileIDint(2)頭像IDageint(3)年齡sexsex char(2)性別 聊天系統(tǒng)工作原理圖服務器客戶客戶客戶 Socket(TCP) Socker(TCP) Socker(TCP)…….圖42系統(tǒng)工作原理 系統(tǒng)功能模塊圖:JAVA聊天系統(tǒng)聊天模塊文件模塊登錄模塊注冊用戶管理模塊文件接收文件發(fā)送發(fā)送文字發(fā)送圖片修改用戶增加用戶刪除用戶在線用戶管理查找用戶踢用戶下線查看在線用戶圖43 系統(tǒng)模塊普通用戶的用例圖:注冊文字登錄用戶聊天 uses圖片 uses發(fā)送文件文件 uses接收文件 uses圖44 普通用戶用例圖后臺管理員的用例圖:管理員登錄增加用戶修改用戶查找用戶刪除用戶踢用戶下線查看在線用戶圖45 后臺用戶用例圖 活動圖(1)用戶登陸活動圖首先填寫登錄信息,提交以后服務器會對用戶名和密碼進行驗證。如果登陸成功,就更新在線狀態(tài)。服務器再檢查是否有他的離線消息,如果有這立即發(fā)送給用戶。此包中包含接收者的信息,如果接收者在線,數(shù)據(jù)包將會轉(zhuǎn)發(fā)到接收者[17]。服務器客戶機客戶機填寫短信內(nèi)容短信發(fā)送短信 監(jiān)聽端口 對方已離線則發(fā)往服務器網(wǎng)絡故障 成功發(fā)送寫入離線消息庫監(jiān)聽端口短信(發(fā)送失?。┙邮斩绦艌D47發(fā)送消息活動圖 系統(tǒng)類設計:客戶端和服務器端通信時,發(fā)送的都是Message類的對象,因此Message類的設計很重要。信息類型private String content。發(fā)送者accountprivate Integer receiverAccount。發(fā)送時間private User myself。自己本身對象,用與好友列表頭好友列表 privatetransient Image img。圖片的內(nèi)容private String fileName。文件的長度privateint length。文件傳輸?shù)臓顟B(tài):0是不接受文件,1是接受文件,2請求發(fā)送文件,3文件傳輸中,4文件傳送完成 private Integer msgType消息的類型有這么幾種:publicinterface MessageType { Integer message_succeed=1。//表明登錄失敗 Integer message_m_mes=3。//要求在線好友的包 Integer message_ret_onLineFriend=5。//下線通知包 Integer message_img=7。//文件包}:截圖類的實現(xiàn)類為:class Screenshot extends JFrame implements MouseListener,MouseMotionListener。screenRect) 創(chuàng)建包含從屏幕中讀取的像素的圖像。然后監(jiān)聽鼠標事件,再用createScreenCapture(Rectangle雙擊表示截圖成功,右鍵表示取消截圖。Thread+runafterSend:記錄發(fā)出數(shù)據(jù)afterreceive:記錄接收到的數(shù)據(jù) ClientConnToServerThred+run()+send(in o:Object)+receive():ObjectMessageRecord+afterSend(in o:Object)+afterREceive(in o:Object0圖49MessageRecord類如果是圖片則顯示出,發(fā)送時間和圖片大小。 :服務器端的核心是對應客戶的線程,每個socket對應一個線程,也就是每一個客戶端都在服務器端有一個相應的線程。線程類為ClientThread:表43ClientThread類屬性名作用publicvoid notifyOnline()通知其他線程,自己上線了,讓客戶方更新頭像publicvoid run() 線程的主題,轉(zhuǎn)發(fā)消息publicvoid notifyOffline(){通知其他線程,自己下線了,讓客戶方更新頭像publicvoid send(Object o) 發(fā)送消息public Object receive() 接收消息5 即時通信系統(tǒng)實現(xiàn) 實現(xiàn)概況本系統(tǒng)可分為登錄、聊天、文件、用戶管理和注冊五個功能模塊。聊天記錄會以文本文檔格式保存。下面詳細介紹各個模塊的具體實現(xiàn)。 returnrefresh。 if(()==null) (u)。 }DAO類中的方法:publicvoid save(User u){ conn=getConnection()。 (1, ())。 (3, ())。 (5, ())。 ()。 }finally{ close()。登錄成功后,立即向服務器請求自己的好友列表。// (())。 ((().trim()))。// 登陸成功 if((u)){ //向服務器發(fā)送數(shù)據(jù)包,請求在線人得信息 ClientConnToServerThread t=。 ()。 try { (m)。 } dispose()。 } }。publicboolean checkLogin(Object o) { boolean success=false。// (())。 if(().intValue()==()){ success=true。 //將好友列表放到管理器中,進行上下線操作 IMFriendList fl=new IMFriendList((),())。 //開啟客戶線程 ,接收服務器端的信息 connThread =new ClientConnToServerThread(())。 ()。 =connThread。 }客戶端通過publicclass IMClientServer 類與服務器通信public Object sendLoginInfo(Object o) { try { ObjectOutputStream oos = new ObjectOutputStream(())。 ObjectInputStream ois = new ObjectInputStream(())。 return ms。 } catch (ClassNotFoundException e) { ()。 }這樣按照MVC的模式設計,減小系統(tǒng)的耦合。從數(shù)據(jù)庫中搜索用戶,看是否存在publicboolean checkLogin(User u){ User user=(())。 } returnfalse。然后在服務器上專門開啟一個針對當前用戶的線程,并且吧線程放入管理類中,便于日后的管理。 ()。 (())。 //為用戶單獨創(chuàng)建線程 ClientThread t=new ClientThread(s)。 if(list!=null){ for(Message msg:list){ (msg)。 } //開啟線程 ()。 //把用戶線程放入管理類中 ((), t)。 ( 成功)。 (m)。 // 關(guān)閉Socket ()。//點擊的如果是發(fā)送button if (() == confirmButton) { Message m=(Message) makePackage(,null)。 //在自己的Ouput上顯示 showMessage(m,)。 }當用戶點擊發(fā)送按鈕后,先把先把信息顯示在自己的聊天窗口上,后方發(fā)送信息,自己發(fā)送的信息和接收到的信息用不同的顏色顯示。 (attrset,c)。// 利用getDocument()方法取得JTextPane的Document //一般信息 if(().intValue()==){ String str=() + +()+\n++ ()+ \n。 //設置光標到末尾 (())。 } }發(fā)送圖片信息:在發(fā)送圖片信息的時候,先將圖片轉(zhuǎn)換成為byte[]數(shù)組,包裝在信息包種發(fā)送出去,接收到圖片信息時,從byte[]數(shù)組構(gòu)建圖片,顯示出來[23]。 try { ((RenderedImage) img, jpg, bos)。 } return ()。 } catch (IOException e) { ()。 }在JtextPane中顯示圖片的代碼:if(().intValue()==){ //圖片信息 String str=() + +()+ \n。 //設置光標到末尾 (())。 ((), \n, attrset)。 } catch (BadLocationException e) { ()。關(guān)鍵代碼如下: Message m = (Message) receive()。
點擊復制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1