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

正文內(nèi)容

基于bs方式的即時(shí)通信軟件的和實(shí)現(xiàn)(完整版)

  

【正文】 3 系統(tǒng)的總體設(shè)計(jì) 總體概述 本系統(tǒng)主要有四個(gè)模塊組成:登錄模塊,注冊(cè)模塊,客戶端模塊,服務(wù)器 端 模塊。 ( 3) 為多種編程語(yǔ)言提供了 API。所需要的只是 Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。 JDBC 簡(jiǎn)介 JDBC( Java Data Base Connectivity,Java 數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行 SQL語(yǔ)句的 Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問,它由一組用 Java 語(yǔ)言編寫的類和接口組成。它是在傳統(tǒng)的網(wǎng)頁(yè) HTML 文件(*.htm,*.html)中插入 Java 程序段 (Scriptlet)和 JSP 標(biāo)記 (tag),從而形成 JSP 文件 (*.jsp)。包含 Applet 的網(wǎng)頁(yè)被稱為 Java powered 頁(yè),可以稱其為Java 支持的網(wǎng)頁(yè)。 Java 應(yīng)用 編程 接口為Java應(yīng)用提供了一個(gè)獨(dú)立于 操作系統(tǒng) 的 標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。 它在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試 JSP 程序的首選。也就是說(shuō) Ubuntu 目前是并將永遠(yuǎn)是免費(fèi)的。 操作可行性 對(duì)于即時(shí)通信軟件,由于其操作并不復(fù)雜且采用 B/S 方式進(jìn)行管理,同時(shí)數(shù)據(jù)庫(kù)也不是很復(fù)雜。 需求分析 隨著非 Windows 操作系統(tǒng)用戶越來(lái)越多,現(xiàn)有的基 于 C/S 模式的即時(shí)通信軟件已無(wú)法滿足不同操作系統(tǒng)用戶間即時(shí)通訊的需求。由于開發(fā)軟件所需資源缺乏和交付時(shí)間限制的困擾,使得計(jì)算機(jī)軟件的開發(fā)變得比較困難。 了解了每個(gè)項(xiàng)目所必需要做的事,才能把項(xiàng)目繼續(xù)下去,為此要對(duì)所做的課題進(jìn)行一個(gè)基本的了解,也就是要了解本課題真正要 “做什么 ”。 以 iphone 為代表的蘋果公司產(chǎn)品近些年來(lái)也開始進(jìn)入國(guó)內(nèi)普通用戶的視線, Mac OS 以其強(qiáng)大的 2D、 3D 和多媒體圖形性能 得到人們的青睞。 it prepared and achieved instant messages forwarded to the deposited. This system finally satisfy requirement of users on different operating systems by using the immediate munication, and implement instant messaging system of B / S model. Key words: B / S model.。 軟件 的運(yùn)行環(huán)境 采用 開源免費(fèi)的 操作 系統(tǒng),采用 Tomcat作為 JSP 運(yùn)行容器 。 本 即時(shí)通訊軟件 系統(tǒng) 共由四個(gè)模塊組成:登錄模塊,注冊(cè)模塊,客戶端模塊和服務(wù)器端模塊。 Instant Messaging。 然而在眾多的即時(shí)通信軟件中很少有服務(wù)提供商同時(shí)對(duì) Windows、 Linux或者 Mac 操作系統(tǒng)提供支持。 基于以上考慮,本系統(tǒng)需要提 供一套完整的用戶管理系統(tǒng),實(shí)現(xiàn)用戶的注冊(cè)、登錄以及個(gè)人信息的管理;一個(gè)簡(jiǎn)單易用友好的即便是入門級(jí)的用戶也可以輕易掌握客戶端界面;一個(gè)強(qiáng)大快捷提供數(shù)據(jù)包轉(zhuǎn)發(fā)與轉(zhuǎn)存的服務(wù)器端。 由于采用了基于 B/S 方式的結(jié)構(gòu),必定會(huì)對(duì)客戶端有一定的限制(只能在瀏覽器內(nèi)運(yùn)行)。 B/S 方式是 對(duì) C/S模式應(yīng)用的擴(kuò)展 , 在這種結(jié)構(gòu)下,用戶工作界面是通過瀏覽器來(lái)實(shí)現(xiàn)的 ,可以忽略操作系統(tǒng)的差異,因此開發(fā)一套基于 B/S 方式的即時(shí)通信軟件是很有價(jià)值的。而且本系統(tǒng)的開發(fā)工具便于和 MySQL 數(shù)據(jù)庫(kù)相連,為今后向網(wǎng)絡(luò)發(fā)展提供了更加便利的環(huán)境。 然而,這并不僅僅意味著零成本,自由軟件的理念是人們應(yīng)該以所有 “對(duì)社會(huì)有用 ”的方式自 由地使用軟件。它運(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程 序員都可以更改它或在其中加入新的功能。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè) Java 平臺(tái)之后, Java 應(yīng)用程序就可運(yùn)行。 當(dāng)用戶訪問這樣的網(wǎng)頁(yè)時(shí) , Applet 被下載到用戶的計(jì)算機(jī)上執(zhí)行,但前提是用戶使用的是支持 Java 的網(wǎng)絡(luò)瀏覽器。 用 JSP 開發(fā)的 Web應(yīng)用是跨平臺(tái)的與 Java Servlet 一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè) HTML 文 本,因此客戶端只要有瀏覽器 就能瀏覽。 JDBC 為工具 /數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可 以 構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫(kù)應(yīng)用程序。 而 JDBC 正是作為此種用途的機(jī)制 。 這些編程語(yǔ)言包括 C、 C++、 Eiffel、Java、 Perl、 PHP、 Python、 Ruby 和 Tcl 等。 其功能結(jié)構(gòu)如圖 1所示。 端 模塊 該模塊是 整個(gè)系統(tǒng)的核心之一,實(shí)現(xiàn)即時(shí)監(jiān)控用戶間消息的傳遞,對(duì)用戶信息進(jìn)行轉(zhuǎn)發(fā) ,刪除管理人員指定的用戶。 邏輯結(jié)構(gòu)設(shè)計(jì)。只需要在連接互聯(lián)網(wǎng)的情況下輸入一條 aptget指令: sudo aptget install mysqlserver mysqlclint 上述命令的意思是 “ 在 root權(quán)限下進(jìn)行應(yīng)用程序 mysqlserver mysqlclint的獲取并安裝 ” 。 stat an |grep 3306 MySQL服務(wù)默認(rèn)的開發(fā)端口為 3306,如果 MySQL運(yùn)行正常,則會(huì)顯示 類似圖 3 的 內(nèi)容,表明 MySQL 數(shù)據(jù)庫(kù)服無(wú)已經(jīng)監(jiān)聽 3306 端口。如圖 6所示 。 ( 2) 安裝 MySQL 時(shí),可以在配置文件 () 中指定一個(gè)默認(rèn)的的字符集,如果沒指定,這個(gè)值繼承自編譯時(shí)指定的; ( 3) 啟動(dòng) mysqld 時(shí),可以在命令行參數(shù)中指定一個(gè)默認(rèn)的的字符集,如果沒指定,這個(gè)值繼承自配置文件中的配置 ,此時(shí) character_set_server 被設(shè)定為這個(gè)默認(rèn)的字符集 ; ( 4) 當(dāng)創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)時(shí),除非明確指定,這個(gè)數(shù)據(jù)庫(kù)的字符集被缺省設(shè)定為 character_set_server; ( 5) 當(dāng)選定了一個(gè)數(shù)據(jù)庫(kù)時(shí), character_set_database 被設(shè)定為這個(gè)數(shù)據(jù)庫(kù)默認(rèn)的字符集; ( 6) 在此數(shù)據(jù)庫(kù)里創(chuàng)建表時(shí),表默認(rèn)的字符集被設(shè)定為character_set_database,也就是這個(gè)數(shù)據(jù)庫(kù)默認(rèn)的字符集; ( 7) 當(dāng)在表內(nèi)設(shè)置一欄時(shí),除非明確指定,否則此欄缺省的字符集就是表默認(rèn)的字符集; 簡(jiǎn)單的總結(jié)一下, 如果什么地方都不修改,那么所有的數(shù)據(jù)庫(kù)的所有表的所有欄位的都用 latin1存儲(chǔ),不過我們?nèi)绻惭b MySQL,一般都會(huì)選擇多語(yǔ)言支持,也就是說(shuō),安裝程序會(huì)自動(dòng)在配置文件中把 default_character_set 設(shè)置為 UTF8,這保證了缺省情況下,所有的數(shù)據(jù)庫(kù)的所有表的所有欄位的都用 UTF8 存儲(chǔ)。utf839。GUOCONG39。其具體結(jié)構(gòu)與說(shuō)明如下 : users 表 該表的主要作用是 保存 用戶注冊(cè)的基本信息 。 該表包含 name姓名, ID 編號(hào)兩個(gè)字段。使用哪一個(gè)方法由 SQL 語(yǔ)句所產(chǎn)生的內(nèi)容決定。executeUpdate 的返回值是一個(gè)整數(shù),指示受影響的行數(shù)(即更新計(jì)數(shù))。因?yàn)槎鄶?shù)程序員不會(huì)需要該高級(jí)功能 execute 方法應(yīng)該僅在語(yǔ)句能返回多個(gè) ResultSet 對(duì)象、多個(gè)更新計(jì)數(shù)或ResultSet 對(duì)象與更新計(jì)數(shù)的組合時(shí) 使用。如果返回 int,則意味著結(jié)果是更新計(jì)數(shù)或執(zhí)行的語(yǔ)句是 DDL 命令。也就是說(shuō),當(dāng)下列條件為真時(shí)表示沒有結(jié)果(或沒有其它結(jié)果): ((() == null) amp。amp。 頁(yè)面將接收到參數(shù)使用 name和 psw,并將 name作字符轉(zhuǎn)換。該方法比較此字符串與指定的對(duì)象。 注冊(cè)頁(yè)面 如圖 14 所示。 s = new String(b)。 用戶頁(yè)面的設(shè)計(jì) 用戶頁(yè)面由 Applet 小程序 chatGui 和線程類 ClientThread 組成 。 ( 4) JLabel Lsay 字符 標(biāo)簽 “ 說(shuō) ” 。 ( 12) JButton Bupdate 個(gè)人信息 更新 按鈕 。 ( 21) JTextArea Temai 文本框顯示 被用戶電子郵件 。 Java Swing 中處理各組件事件的一般步驟是: ( 1) 新建一個(gè)組件 (如 JButton)。當(dāng)然,如果處理的事件較少,這 種方式比較簡(jiǎn)單。 設(shè)置各個(gè)組件的屬性主要使用了以下方法 [10] ( 1) setBonds(int x,int y,int width, int height)方法, 將此 Rectangle 的邊界 Rectangle 設(shè)置為指定的 x、 y、 width 和 height。如果將該標(biāo)志設(shè)置為 true,則此文本組件變成用戶可編輯的。此屬性默認(rèn)為 false。 void getUserinfo():按鈕 Binfo被按下時(shí)觸發(fā)。添加用戶,將用戶名寫入 online 表 ,用以標(biāo)識(shí)該用戶已經(jīng)在線。 圖 16 用戶頁(yè)面( Linux 系統(tǒng) Firefox 瀏覽器 分 辨率 1024*768) 在 WindowsXP 系統(tǒng)下 IE7 瀏覽器運(yùn)行效果如圖 17 所示 。一個(gè)類通過繼承Thread 類,同時(shí)重寫其 run()方法,該類就可以實(shí)現(xiàn)多線程的方式運(yùn)行,并繼承 Thread 類的所有方法 。 服務(wù)器端的設(shè)計(jì) 服務(wù)器端由兩部分組成: Server 和 ServerThread。 ( 3) JTextArea Tinfo 用戶信息顯示框 。 其作用就是初始化一個(gè) Server 對(duì)象。將該 socket 存入可變數(shù)組 id 中。 第一種形式只使用一次,在客戶端初始化時(shí)使用。 以上過程由線程類 ServerThread 中 run()方法所實(shí)現(xiàn)的 。 本 系統(tǒng) 在功能上基本實(shí)現(xiàn)了 用戶注冊(cè),用戶登錄,編輯用戶信息,向指定用戶發(fā)送 消息 ,為離線用戶保存 消息 的功能 。 在 此 ,我 由衷感謝李牧老師在本次設(shè)計(jì)中對(duì)我給予的充分支持 。 總之,在以后的學(xué)習(xí)生活 中我將以加倍的努力作為對(duì)給予我?guī)椭膶W(xué)校、老師及同學(xué)們的回報(bào)。 在本軟件的開發(fā)過程中,我對(duì)本軟件總體開發(fā)的了解還存在一些不足,業(yè)務(wù)方面也有不少疑問 ,技術(shù)上也不夠熟練。 void updataOnline(int,String): 系統(tǒng)受到新的連 接,將 id 號(hào)寫入對(duì)應(yīng)的用戶記錄中。 當(dāng) ServerThread 接收到此信息時(shí),首先將 “ From” 去除,獲取用戶名。刪除管理人員在Fdelete 文本框輸入的用戶名。調(diào)用 GUI()和 showuser()顯示圖形界面與用戶上次登錄的時(shí)間。 ( 5) JScrollPane Stext 嵌套 Ttext 服務(wù)器端信息顯示框的 滾動(dòng)條 。可以有針對(duì)性的刪除指定的用戶。由于 Java 不支持多繼承性,如果用戶需要類以線程方式 運(yùn)行并 且繼承其他所需要的類,就必須實(shí)現(xiàn)Runnable 接口。 圖 18 用戶頁(yè)面( win2021 系統(tǒng) 瀏覽器 分辨率 1280*768) ClientThread 的設(shè)計(jì) ClientThread 是采用了多線程機(jī)制。用戶退出,將 online 表中的用戶記錄刪除 ,用以標(biāo)識(shí)該用戶不在線。 執(zhí)行了 SQL的 Seletct 語(yǔ)句,使用了JDBC 的 executeQuery executeUpdate 方法 。 void recSav():按鈕 Bsaver 被按下時(shí)觸發(fā)。 默認(rèn)情況下,不可編輯的文本組件的背景色為 。 y 此 Rectangle 的左上角的新 y 坐標(biāo) 。使用簡(jiǎn)單的匿名內(nèi)部類作為 addActionListener 的變量即可。 ( 3) 定義處理事件的方法 (如在 ActionListener 中的 actionPerformed中定義相應(yīng)方法 ) [9] 。 ( 23) JScrollPane Sinfo 嵌套 信息顯示框 Tinfo 的 滾動(dòng)條 [8] 。 以下是 個(gè)人信息顯示區(qū)域相關(guān) 組件 ( 14) JLabel Lname 字符 標(biāo)簽 “ 姓名 ”。 ( 6) JTextArea Ttext 信息顯示框 。在本設(shè)計(jì)中主要應(yīng)用了 init()和 destroy()兩個(gè)方法 [7]。 } 流程如圖 16 所示 。 包括對(duì)用戶的錯(cuò)誤輸入進(jìn)行提示,并將確認(rèn)后的信息添加到 user 表中。 開始 獲得參數(shù) name 和 psw 用戶名為空 用戶 在線 密碼 為空 用戶是否 在線 對(duì) psw 進(jìn)行 MD5 處理 N N N Y Y Y 生成提示 返回登錄頁(yè) 生成提示 返回登錄頁(yè) 根據(jù)參數(shù) 生成用戶 頁(yè) 生成提示 返回登錄頁(yè) 結(jié)束 生成提示 返回登錄 頁(yè) 登錄時(shí)間 寫入庫(kù) Y N 判斷用戶是否在線的方法是查看 online 表中是否有與當(dāng)前用戶相同的用戶名,如果有則判定用戶已經(jīng)在線,不允許用戶登錄;否則則視為沒有在
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1