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

正文內(nèi)容

基于bs方式的即時(shí)通信軟件的和實(shí)現(xiàn)-wenkub.com

2025-05-03 18:17 本頁(yè)面
   

【正文】 參考文獻(xiàn) [1] Ubuntu wiki 指南 [2]褚媛 , 周家紀(jì) , 卞騰 , 李剛 .基于 Java 的數(shù)據(jù)庫(kù)連接池技術(shù)在即時(shí)通信軟件中的應(yīng)用 [J] 電腦開(kāi)發(fā)與應(yīng)用 2021, 02: 1518 [3] 葉核亞,陳立 .Java2 程序設(shè)計(jì)使用教程 [M].北京:電子工業(yè)出版社. : 1172 [4] 張兵義 ,于麗娟 ,姜保慶 .網(wǎng)站規(guī)劃與網(wǎng)頁(yè)設(shè)計(jì) [M].北京:電子工業(yè)出版社 :4670 [5] 汪曉平 ,俞俊 ,李功 .精通 Java 網(wǎng)絡(luò)編程 [M].北京:清華大學(xué)出版社 :171299 441474 [6] 代印唐 ,張世永 .即時(shí)通信安全研究 [J] 電信科學(xué) 2021, 22( 4): 1016 [7] 張文茂 , 章淼 , 畢軍 , 覃征 .互聯(lián)網(wǎng)即時(shí)消息 (Instant Messaging,IM)的研究現(xiàn)狀與展望 [J] 小型微型計(jì)算機(jī)系統(tǒng) 2021 , 07 : 1114 [8] 殷兆麟 .Java 語(yǔ)言程序設(shè)計(jì) [M].北京:高等教育出版社 : 153180 [9] 徐秀華 , 文必龍 , 劉丹江 , 畢碩本 .一種基于 Web 即時(shí)消息的實(shí)現(xiàn)方法[J] 小型微型計(jì)算機(jī)系統(tǒng) 2021, 03: 710 [10] JavaTM 2 Platform Standard Edition 6 API 規(guī)范 [11] 張?jiān)拼?.標(biāo)準(zhǔn)化的即時(shí)通信協(xié)議 [J] 武漢科技大學(xué)學(xué)報(bào) (自然科學(xué)版 ) 28( 4): 1720 附錄 源程序清單 // 登陸頁(yè)面代碼 html head titleEtalk 登錄 /title meta name=keywords content= meta equiv=contenttype content=text/html。通過(guò)這次畢業(yè)設(shè)計(jì)的學(xué)習(xí)、應(yīng)用,對(duì)其功能已基本掌握,我對(duì)基于 Java 的 軟件設(shè)計(jì)有了更深的認(rèn)識(shí),并能夠熟練操作。我會(huì)在以后的維護(hù)工作中逐漸對(duì)本軟件做到全面的掌握,進(jìn)一步 完善 每一個(gè)功能模塊的作用,向更高更深的層次邁進(jìn)。 經(jīng)過(guò)一系列的 測(cè)試修改以及完善, 軟件 運(yùn)行較為穩(wěn)定,完全可以使用。 void updataRec(String,String): 如果系統(tǒng)確認(rèn)接收方不在線(xiàn),則將此離線(xiàn) 信息上載到 recores 表中。 ServerThread 根據(jù)接收方的名字進(jìn)入 online表 中進(jìn)行查找,獲取相應(yīng)的 id號(hào),然后使用 Server 的 sent()方法將消息發(fā)送給指定的接收方;如果在 online表中沒(méi)有發(fā)現(xiàn)相關(guān)記錄,則調(diào)用 updataRec()方法將信息存入 Records 表中。然后通過(guò) socket內(nèi)容查找 Server中的 id 編號(hào),將此編號(hào)寫(xiě)入 online表中用戶(hù)名所對(duì)應(yīng)字段的 id 字段內(nèi)。 ( 2) receiver(接收方名稱(chēng) )+“ receiveit”( 分割字符串用的標(biāo)識(shí) )+sender(發(fā)送方名稱(chēng)) +“ say: ”+ 內(nèi)容 。 void appendMwssage(String): 向 Ttext 中添加信息。 void newClient(Socket): 一旦服務(wù)器端監(jiān)聽(tīng)到新的連接,則啟動(dòng)一個(gè)新的線(xiàn)程。創(chuàng)建一個(gè) ServerSocket 套接字監(jiān)聽(tīng) 5555 端口。 Public static void main(String[]):程序的主方法,程序的入口。 ( 6) JScrollPane Sinf 嵌套 Tinfo 用戶(hù)信息顯示框 滾動(dòng)條 。 ( 2) TextArea Ttex 服務(wù)器端 信息顯示框 。提供指定對(duì)用戶(hù)消息的轉(zhuǎn)發(fā)。 CliThread類(lèi)將接受到的 Socket 內(nèi)容以 UTF- 8字符編碼方式接收,并顯示在 chatGui 的Ttext 組件 中。 事實(shí)上, Thread 類(lèi)本身就 實(shí)現(xiàn)了 Runnable 接口。接口 Runnable 定義run()方法, Thread 類(lèi)的該方法中包含了運(yùn)行時(shí)執(zhí)行的代碼。在 Java 中實(shí)現(xiàn)多線(xiàn)程編程有兩種方式:繼承 Thread 類(lèi)和實(shí)現(xiàn) Runnable 接口。 在 Linux系統(tǒng)下 Firefox瀏覽器下運(yùn)行效果如圖 16 所示。 void sendwords():按鈕 Bsender 被按下時(shí)觸發(fā)。 void inUser():系統(tǒng)初始化時(shí)觸發(fā)。 void getUser():初始化時(shí)觸發(fā) 。 執(zhí)行了 SQL 的 Updata 語(yǔ)句,使用了 JDBC 的executeQuery executeUpdate 方法 。將 Ttext 文本框內(nèi)的信息保存到 records 表中。當(dāng)策略更改時(shí),將激發(fā) PropertyChange 事件( lineWrap)。通過(guò)調(diào)用 setBackground 可以重寫(xiě)此默認(rèn)值。 ( 3) setEditable(boolean b)方法, 設(shè)置判斷此文本組件是否可編輯的標(biāo)志。width 此 Rectangle 的新寬度 。最后,當(dāng)工具欄、菜單欄目等需要處理同樣的用戶(hù)行為時(shí),該方法將使代碼更難維 護(hù)。使用匿名內(nèi)部類(lèi)同樣存在許多另外的問(wèn)題。利用一個(gè)監(jiān)聽(tīng)器來(lái)處理事件的缺點(diǎn)是,當(dāng)程序比較復(fù)雜時(shí),需要一大串的 if 語(yǔ)句來(lái)實(shí)現(xiàn),程序代碼較難閱讀與維護(hù)。 以上步驟我們可以用多種方法實(shí)現(xiàn)。 void GUI():生成界面,添加各個(gè)組件,確定組件位置及屬性,為按鈕添加監(jiān)聽(tīng)器 ,處理各個(gè)按鈕所觸發(fā)的事件 。 chatGui 實(shí)現(xiàn)了 12 個(gè)方法 。 ( 19) JTextArea Tname 文本框顯示 被查詢(xún)用戶(hù)姓名 ( 20) JTextArea Tsex 文本框顯示 被查詢(xún)用戶(hù) 性別 。 ( 15) JLabel Lsex 字符 標(biāo)簽 “ 性別 ”。 ( 11) JButton Binfo 用戶(hù)信息 顯示 按鈕 。 ( 7) JScrollPane Stext 嵌套 信息顯示框 Ttext 的 滾動(dòng)條 。 ( 3) JLabel Lto 字符 標(biāo)簽“ 對(duì) ” 。 chatGui 提供用戶(hù)頁(yè)面的除去接受信息的所有功能。 在完成以上的一些列數(shù)據(jù)處理后,程序?qū)⒉樵?xún)數(shù)據(jù)庫(kù),查看是否有與用戶(hù)名相同的記錄,如果沒(méi)有則添加新紀(jì)錄;反之,提示 “ 對(duì)不起,您的用戶(hù)名已存在 ,請(qǐng)更換 ...” 。 圖 15 添加用戶(hù) 流程圖 判定用戶(hù)名、密碼是否為空采用和 相同的方法。 } try { byte b[] = (ISO88591)。有可能出現(xiàn)的錯(cuò)誤包括,用戶(hù)名、密碼為空;密碼與驗(yàn)證密碼不一致;判斷用戶(hù)是否已經(jīng)注冊(cè)。提交的內(nèi)容包括姓名,密碼,驗(yàn)證密碼, ,性別和自我介紹。如果上述情況不存在則對(duì) psw(用戶(hù)密碼)進(jìn)行 MD5 處理,然后進(jìn)行數(shù)據(jù)庫(kù)操作。 圖 13 流程圖 判定用戶(hù)名和密碼為空使用 String 類(lèi)中的 equals()方法。 圖 9 提示用戶(hù)名不能為空 如果密碼沒(méi)有輸入,彈出如圖 10 提示。 圖 8 登錄 頁(yè)面 的設(shè)計(jì) 處理由 頁(yè)面發(fā)送過(guò)來(lái)的用戶(hù)信息。這個(gè)頁(yè)面提供表單的 post 方法,將用戶(hù)輸入的信息 name 和 psw 發(fā)送給 頁(yè)面。在這種情況下,當(dāng)下列條件為真時(shí)表示沒(méi)有其它結(jié)果: ((() == false) amp。如果 getMoreResults 返回 true,則需要再次調(diào)用 getResultSet 來(lái)檢索下一個(gè)結(jié)果集。 如果方法 getResultSet 已返回 null(表示結(jié)果不是 ResultSet 對(duì)象),則返回值 1 表示沒(méi)有其它結(jié)果。 當(dāng) SQL 語(yǔ)句的結(jié)果不是結(jié)果集時(shí),則方法 getResultSet 將返回 null。 如果結(jié)果是 ResultSet 對(duì)象,則方法 execute 返回 true;如果結(jié)果是 Java int,則返回 false。例如,假定已知某個(gè)過(guò)程返回兩個(gè)結(jié)果集,則在使用方法 execute 執(zhí)行該過(guò)程后,必須調(diào)用方法 getResultSet 獲得第一個(gè)結(jié)果集,然后調(diào)用適當(dāng)?shù)? getXXX 方法獲取其中的值。 用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語(yǔ)句。創(chuàng)建表,改變表,刪除表都 是 DDL 語(yǔ)句的例子,要用 executeUpdate 方法來(lái)執(zhí)行。 INSERT、UPDATE 或 DELETE 語(yǔ)句的效果是修改表中零行或多行中的一列或多列。 被使用最多的執(zhí)行 SQL 語(yǔ)句的方法是 executeQuery。 JDBC 中 Statement 接口提供的 execute、 executeQuery 和 executeUpdate 三種執(zhí)行 SQL 語(yǔ)句的方法: executeQuery、 executeUpdate 和 execute。 JDBC 是一種規(guī)范,它讓各數(shù)據(jù)庫(kù)廠(chǎng)商為 Java 程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)類(lèi)和接口,這樣就使得獨(dú)立于 DBMS 的 Java 應(yīng)用程序的開(kāi)發(fā)工具和產(chǎn)品成為可能 [4]。 表 2 records 表 字段中文名稱(chēng) 字段英文名稱(chēng) 字段類(lèi)型 字段長(zhǎng)度 是否為空 主鍵 姓名 name Varchar 20 不是 是 記錄 record TEXT online 表 該表記錄用戶(hù)的在線(xiàn)狀態(tài),對(duì)服務(wù)器端轉(zhuǎn)發(fā)數(shù)據(jù)包有著至關(guān)重要的作用。 表 1 users 表 字段中文名稱(chēng) 字段英文名稱(chēng) 字段類(lèi)型 字段長(zhǎng)度 是否為空 主鍵 用戶(hù)名 name Varchar 20 不是 是 密碼 psw Varchar 32 不是 電子郵件 Varchar 20 不是 性別 sex Varchar 1 不是 用戶(hù)信息 Info TEXT 不是 注冊(cè)時(shí)間 Data DATA records 表 該表主要用于記錄用戶(hù)離線(xiàn) 時(shí) 收到的信息 ,也可以保存用戶(hù)的聊天記錄。在其中添加以上三個(gè)表。 編輯 /etc/mysql/ 原來(lái)默認(rèn)為 : Instead of skipworking the default is now to listen only on localhost which is more patible and is not less secure. bindaddress = 在 bindaddress = 前添加 ,將綁定 IP 注釋掉,即可實(shí)現(xiàn)外部訪(fǎng)問(wèn) 。 IDENTIFIED BY 39。 SET character_set_connection = utf8。解決方法是在發(fā)送查詢(xún)前執(zhí)行一下下面這句: SET NAMES 39。 得到如圖 7 所示結(jié)果。 但是,傳統(tǒng)的程序在創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表時(shí)并沒(méi)有使用那么復(fù)雜的配置,它們用的是默認(rèn)的配置,那么,默認(rèn)的配置從何而來(lái)呢? ( 1) 編譯 MySQL 時(shí),指定了一個(gè)默認(rèn)的字符集,這個(gè)字符集是 latin1。主要包含兩大方面,修改默認(rèn)字符集,開(kāi)放遠(yuǎn)程服務(wù)。并彈出提示。如圖 4 所示 。您可以在終端提示符後運(yùn)行以下命令來(lái)檢查 MySQL 服務(wù)器是否正在運(yùn)行 。 圖 2 MySQL 數(shù)據(jù)庫(kù)服務(wù)端與客戶(hù)端的安裝 默認(rèn)情況下 MySQL 的管理員是沒(méi)有密碼的,基于安全考慮應(yīng)該為 root設(shè)定密碼。 MySQL 系統(tǒng)的安裝 Ubuntu系統(tǒng)提供強(qiáng)大的軟件包管理模式,安裝 MySQL 數(shù)據(jù)庫(kù)系統(tǒng)可以說(shuō)是一種非常愉快的體驗(yàn)。 由于這四個(gè)軟件都是遵循 GPL 的開(kāi)放源碼軟件,因此使用這種方式不用花一分錢(qián)就可 以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。概念模型是按用戶(hù)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)建模,概念模型是用于進(jìn)行信息世界建模的工具,對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)具有深刻的影響 [3]。 根據(jù)用戶(hù)需求 ,確定數(shù)據(jù)庫(kù)中要保存的數(shù)據(jù)信息。 該模塊是 整個(gè)系統(tǒng)的核心之一,實(shí)現(xiàn)使用者對(duì)指定用戶(hù)發(fā)送消息,接收他人發(fā)送的即使消息以及離線(xiàn)留言,更新個(gè)人信息,查看他人信息。 各模塊功能概述 該模塊 實(shí)現(xiàn)驗(yàn)證用戶(hù)名和密碼是否正確,對(duì)用戶(hù)的一些不正確輸入進(jìn)行判斷。 3 系統(tǒng)的總體設(shè)計(jì) 總體概述 本系統(tǒng)主要有四個(gè)模塊組成:登錄模塊,注冊(cè)模塊,客戶(hù)端模塊,服務(wù)器 端 模塊。 ( 6) 既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶(hù)端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的 編碼 如中文的 GB 231 BIG5,日文的 Shift_JIS 等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。 ( 3) 為多種編程語(yǔ)言提供了 API。 MySQL簡(jiǎn)介 MySQL 是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典 MySQL AB公司 。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話(huà)的方法。同時(shí),將 Java 語(yǔ)言和 JDBC 結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序,只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是 Java 語(yǔ)言“編寫(xiě)一次,處處運(yùn)行 ”的優(yōu)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1