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

正文內(nèi)容

精品畢業(yè)論文--基于java的局域網(wǎng)聊天軟件設(shè)計(jì)(參考版)

2024-12-05 22:55本頁(yè)面
  

【正文】 并在用戶查看 后退出客戶端。 } catch (Exception e) { } private void exitChatRoom() { exit()。 ()。 ()。 // 向服務(wù)器發(fā)送信息 ObjectOutputStream outObj = new ObjectOutputStream(toServer .getOutputStream())。 = strLoginName。 } 退出聊天系統(tǒng) 當(dāng)前用戶點(diǎn)擊“退出”按鈕或者關(guān)閉窗口時(shí),系統(tǒng)將會(huì)把用戶退出的信息打包成對(duì)象發(fā)送給服務(wù)器,并退出客戶端程序。 } catch (IOException e) { // TODO 自動(dòng)生成 catch 塊 ()。 // (fileString)。 // fileString += (line + \n)。 if (line == null) { break。 BufferedReader read = new BufferedReader(fileReader)。 //繪制時(shí)針 line(g,hdo,(int)(r*),)。 old_Y=y。 (x0,y0,x,(hy))。 x=(int)((r8)*(RAD*sdo)+x0)。 27 hdo=90hh*30mm/2。 //計(jì)算時(shí)間和圖形的關(guān)系 sdo=90ss*6。 else st=st+:+ss。 else st=st+:+mm。 else st=+hh。//填充的矩 形 ()。// 秒 ()。//小時(shí) mm=()。 //繪制圓形 ?????????? ?????????? //獲取時(shí)間 Calendar now=()。 String st。 int L0 = ()/2, T0 = ()/2。 } } 顯示系統(tǒng)時(shí)間 當(dāng)用戶 需要查看當(dāng)前時(shí)間時(shí),可以直接點(diǎn)擊“時(shí)鐘”按鈕,將會(huì)啟動(dòng)一個(gè)漂亮的電子時(shí)鐘, 26 時(shí)鐘模塊程序: public void actionPerformed(ActionEvent e) { ()。 (null, 聊天記錄保存在 + + )。 (())。 String temp = ()。 } catch (Exception e) { } } // sendMessage()結(jié)束 保存聊天記錄 當(dāng)用戶 需要保存聊天記錄時(shí)可以直接點(diǎn)擊“保存”按鈕,為了防止多用戶聊天記錄文件沖突問(wèn)題,聊天記錄將會(huì)以“用戶名 ”為文件名,將信息保存在當(dāng)前應(yīng)用程序目錄下。 // 清空文本框 ()。 (chatobj)。 // 向服務(wù)器發(fā)送信息 try { Socket toServer = new Socket(strServerIp, 1001)。 = () ? true : false。 = ()。 // 發(fā)送 按鈕 public void sendMessage() { Chat chatobj = new Chat()。包括聊天對(duì)象,聊天語(yǔ)氣,聊天內(nèi)容,聊天字體,風(fēng)格,大小,顏色 ?? . 用戶發(fā)送信息 用戶 需要發(fā)送信息時(shí),在聊天內(nèi)容里寫(xiě)下要發(fā)送的信息,然后點(diǎn)擊發(fā)送就可以發(fā)送到其他客戶端,也可以選擇私聊,聊天表情,聊天信息通過(guò)服務(wù)器發(fā)送到其他客戶端。位于界面正中的兩個(gè)控件分別是 List 和 TextBox 用來(lái)顯示當(dāng)前服務(wù)器上的在線會(huì)員 名單列表和公共聊天信息。 ()。 ()。 ()。 // 關(guān)閉流對(duì)象 ()。 if ((登錄成功 )) { new ChatRoom((String) , strServerIp)。 // 讀來(lái)自服務(wù)器 socket的登錄狀態(tài) BufferedReader fromServer = new BufferedReader( new InputStreamReader(()))。 ObjectOutputStream streamToServer = new ObjectOutputStream(())。 } 用戶登錄 收集用 戶登錄信息 程序?qū)⑼ㄟ^(guò) 用戶登錄界面收集用戶的用戶名、密碼,如圖 圖 415 收集用戶登錄信息圖 // 接受客戶的詳細(xì)資料 ??????????? 23 try { // 連接到服務(wù)器 Socket toServer。 ()。 ()。 (null,status)。 String status=()。 //寫(xiě)客戶詳細(xì)資料到服務(wù)器 socket ((Register_Customer)data)。 toServer = new Socket(strServerIp,1001)。 } 22 客戶端程序編寫(xiě) 程序?qū)?通過(guò) 用戶注冊(cè)界面收集用戶的用戶名、密碼、年齡、電子郵箱。 // 將聊天信息的序列化對(duì)象填加到保存聊天 信息的矢量中 ((Chat) cObj)。 // chenmin = ()。 public void serverChat() { // 將接收到的對(duì)象值賦給聊天信息的序列化對(duì)象 Chat cObj = new Chat()。系統(tǒng)消息發(fā)出后,如再有登錄者也可以接收到系統(tǒng)消息。語(yǔ)言過(guò)濾的時(shí)候?qū)?huì)打開(kāi)“ ”文件,不允許出現(xiàn)的關(guān)鍵詞將會(huì)存儲(chǔ)在文件中,關(guān)鍵字之間以逗號(hào)分割。 } 接收用戶聊天信息 當(dāng)用戶發(fā)送聊天信息時(shí),服務(wù)端將會(huì)收到客戶端用 Socket 傳輸過(guò)來(lái)的聊天信息對(duì)象,然后將其強(qiáng)制轉(zhuǎn)換為 Chat 對(duì)象。 log(用戶 + + 已經(jīng)退出 , + 退出時(shí)間 : + ())。 // chenmin 21 if (()) { = 。 exit = (Exit) obj。否則用戶數(shù)據(jù)將會(huì)不同步。 線列表中刪除用戶 用戶退出后應(yīng)該把用戶從在線列表中刪除,否則用戶退出用戶還在在線列表中,那么該用戶下次將會(huì)無(wú)法登錄。 break。 break。 a++) { String _custName = ((Customer) userOnline .elementAt(a)).custName。 for (int a = 0。 break。 20 在對(duì)象數(shù)據(jù)庫(kù)中查找是否有與登錄用戶的用戶名相同的記錄,如果有繼續(xù)驗(yàn)證,否則退出驗(yàn)證處理,返回“沒(méi)有此用戶”錯(cuò)誤 用戶登陸程序模塊如下: if (()) { find = 1。 ObjectInputStream objInput1 = new ObjectInputStream(file3)。 用戶登陸 讀用戶數(shù)據(jù) 打開(kāi)用戶數(shù)據(jù)庫(kù)文件“ ”,將用戶數(shù)據(jù)對(duì)象集載入內(nèi)存,以供下面的程序使用。 log(用戶 + + 注冊(cè)成功 , + 注冊(cè)時(shí)間 : + () + \n)。 // 發(fā)送注冊(cè)成功信息 ( + 注冊(cè)成功 )。 (vList)。 // 將向量中的類(lèi)寫(xiě)回文件 FileOutputStream file = new FileOutputStream(fList)??蛻舳说玫阶?cè)信息后會(huì)在前臺(tái)填寫(xiě)注冊(cè)信息,然后創(chuàng)建文件輸出流,再用對(duì)象輸出流包裝后寫(xiě)入本地文件將其持久化。 break。 } else if ((所有人 )) { (禁止使用此注冊(cè)名 ,請(qǐng)另外選擇 )。 flag = 1。 i++) { Register_Customer reg = (Register_Customer) vList .elementAt(i)。 19 // 判斷是否有重名 for (int i = 0。 if (() != 0)// 判斷是否是第一個(gè)注冊(cè)用戶 { ObjectInputStream objInput = new ObjectInputStream( new FileInputStream(fList))。 // 是否重名判斷標(biāo)志 Register_Customer clientMessage = (Register_Customer) obj。 客戶端通過(guò) 請(qǐng)求注冊(cè),填寫(xiě)注冊(cè)信 息,并驗(yàn)證密碼是否符合規(guī)定,是否兩次輸入一致,如不一致會(huì)提示重新輸入,最后將請(qǐng)求信息發(fā)送給服務(wù)器端。 聊天系統(tǒng)采用用戶名作為用戶帳號(hào),并給每個(gè)用戶生成一個(gè)唯一 ID 來(lái)做系統(tǒng)內(nèi)部的用戶標(biāo)識(shí)。 18 解決方案 后臺(tái)數(shù)據(jù)庫(kù)設(shè)計(jì) 基于服務(wù)器跨平臺(tái)運(yùn)行的構(gòu)想,服務(wù)器的后臺(tái)數(shù) 據(jù)庫(kù)使用了 SQL Server2020。 6. 服務(wù)器踢人,發(fā)送通知。 3. 能夠接受私聊信息并發(fā)送給特定的用戶。 16 4 詳細(xì)設(shè)計(jì) 系統(tǒng)流程圖 系統(tǒng)總體流程圖 開(kāi) 始啟 動(dòng) 服 務(wù) 器判 斷 啟 動(dòng) 信 息啟 動(dòng) 客 戶 端判 斷 登 錄 信 息登 錄 聊 天 室退 出 聊 天 室結(jié) 束是是注 冊(cè) 用 戶退 出 服 務(wù) 器否是否 圖 41 系統(tǒng)總體流程圖 17 系統(tǒng)客戶端流程圖 開(kāi) 始客 戶 端 登 錄
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1