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

正文內(nèi)容

本科-基于java的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-01-11 03:54 本頁面
 

【文章內(nèi)容簡介】 相容性檢查 ,以防止不安全的 轉(zhuǎn)換。 C、 C++中用頭文件來聲明類的原型以及全局變量、庫函數(shù)等 ,在大的系 統(tǒng)中 ,維護(hù)這些頭文件是很困難的。而 Java 不支持頭文件 ,類成員的類型和訪 問權(quán)限都封裝在一個(gè)類中 ,運(yùn)行時(shí)系統(tǒng)對訪問進(jìn)行控制 ,防止對私有成員的操作。同時(shí) ,Java中用 import 語句來與其它類進(jìn)行通訊 ,以便使用它們的方法。 C、 C++中的結(jié)構(gòu) 和聯(lián)合中所有成員均為公有,這就帶來了安全性問題。 Java中不包含結(jié)構(gòu)和聯(lián)合,所有的內(nèi)容都封裝在類中。 C、 C++中用宏定義來實(shí)現(xiàn)的代碼給程序的可讀性帶來了困難。在 Java 中不支持宏,它通過關(guān)鍵字 final 來聲明一個(gè)常量 ,以實(shí)現(xiàn)宏定義中廣泛使 用的常量定義 JAVA 語言在網(wǎng)絡(luò)上的應(yīng)用 Java 程序可以獲取網(wǎng)絡(luò)上結(jié)點(diǎn)的圖象、聲音、 HTML 文檔及文本等資源,并可以對獲得的資源進(jìn)行處理。例如 Java 程序可以每隔一定時(shí)間讀取某結(jié)點(diǎn)提供的最新數(shù)據(jù),并以圖表的形式顯示出來。在編程處理上,一般先 生成一個(gè) URL 類型的對象,然后用 Java 中相應(yīng)的方法( method)獲取該對象所代表的資源。下面列舉一個(gè) Java從網(wǎng)絡(luò)上獲取圖象的的方法以說明。 Java Applet 可以直接從網(wǎng)絡(luò)上結(jié)點(diǎn)獲取圖象并顯示出來, Java 提供了如下方法可以創(chuàng)建對應(yīng)于其他結(jié)點(diǎn)的圖象: getImage(new URL(字符串 )) 其使用格式可有兩種: String url = “結(jié)點(diǎn) URL” 。 Image image。 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 8 try { image = getImage(new URL(url))。 } catch(Exception e){ (“Can’t open the URL “)。 } 或 URL imgur=null。 Image image。 try { imgur=new URL(“結(jié)點(diǎn) URL “ )。 }catch (MalformedURLException e) { (“Can’t open the URL “)。 } image=getImage(imgur)。 前一種格式用“ new URL(url)”生成 URL 對象, 并直接作為 getImage 的參數(shù),后一種格式先用“ new URL(url)”生成一個(gè) URL 對象,再傳給 getImage,兩種格式本質(zhì)上是一樣的。 以上僅是 Java 在客戶端應(yīng)用的一些方面,目前, Java 更廣泛的應(yīng)用是在服務(wù)器端。 JavaBeans 技術(shù) 什么是 JavaBeans? JavaBeans 就是 Java 的可重用組件技術(shù)。 ASP 通過 COM 來擴(kuò)充復(fù)雜的功能,如文件上載、發(fā)送 以及將業(yè)務(wù) 處理或復(fù)雜計(jì)算分離出來成為獨(dú)立可重復(fù)利用的模塊。 JSP 通過 JavaBeans 實(shí)現(xiàn)了同樣的功能擴(kuò)充。 JSP 對于在 Web 應(yīng)用中集成 JavaBeans 組件提供了完善的支持。這種支持不僅能縮短開發(fā)時(shí)間(可以直接利用經(jīng)測試和可信任的已有組件,避免了重復(fù)開發(fā)),也為 JSP 應(yīng)用帶來了更多的可伸縮性。 JavaBeans 組件可以用來執(zhí)行復(fù)雜的計(jì)算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫的交互以及數(shù)據(jù)提取等。在實(shí)際的 JSP 開發(fā)過程中,讀者將會(huì)發(fā)現(xiàn),和傳統(tǒng)的 ASP 或 PHP 頁面相比, JSP頁面將會(huì)是非常簡潔的,由于 JavaBeans 開發(fā)起來簡單,又可以利用 Java 語言的強(qiáng)大功能,許多動(dòng)態(tài)頁面處理過程實(shí)際上被封 裝 到了 JavaBeans 中。 IP/TCP 協(xié)議常識(shí) 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 9 (1)IP、 TCP 協(xié)議的特點(diǎn): TCP/IP( Transmission Control Protocol/Inter Protocol)是傳輸控制協(xié)議 /網(wǎng)際協(xié)議的縮寫 , TCP/IP 是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。 TCP/IP 協(xié)議的體系結(jié)構(gòu)共有四個(gè)層次 ,即應(yīng)用層、傳輸層、網(wǎng)絡(luò)互聯(lián)層和網(wǎng)絡(luò)接口層。 IP協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第二,提供不可靠的無連接的服務(wù)。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供 路由選擇的信息,沒有差錯(cuò)校驗(yàn)和處理的機(jī)制。 TCP 協(xié)議的功能:差錯(cuò)控制 —— 可靠性、面向連接、分段( Segment)、端口號(hào)。TCP 是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳輸服務(wù),它用三次握手和滑動(dòng)窗口機(jī)制來保證傳輸?shù)目煽啃?,及進(jìn)行流量控制。 TCP/IP 協(xié)議具有以下特點(diǎn): 協(xié)議標(biāo)準(zhǔn)具有開放性,其獨(dú)立于特定的計(jì)算機(jī)硬件及操作系統(tǒng),可以免費(fèi)使用。 統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個(gè) TCP/IP 設(shè)備在網(wǎng)絡(luò)中都具有唯一的 IP 地址。 實(shí)現(xiàn)了高層協(xié)議的標(biāo)準(zhǔn)化,能為用戶提供多種可靠的服務(wù)。 (2)TCP/IP 協(xié)議進(jìn)行傳 輸數(shù)據(jù)傳輸?shù)倪^程: 應(yīng)用程序?yàn)榱藗鬏敂?shù)據(jù)會(huì)調(diào)用 TCP,將數(shù)據(jù)和對應(yīng)的參數(shù)傳給 TCP,將 TCP 數(shù)據(jù)包封裝在 IP包內(nèi),通過網(wǎng)絡(luò)送給目的 TCP。接收方 TCP 在接收到數(shù)據(jù)后通知上層應(yīng)用程序, TCP 將保證接收數(shù)據(jù)的正確性。在實(shí)現(xiàn) TCP 的主機(jī)上, TCP 可以被看成是一個(gè)模塊,和文件系統(tǒng)區(qū)別不大, TCP 也可以調(diào)用一些操作系統(tǒng)的功能, TCP 不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門的設(shè)備驅(qū)動(dòng)模塊完成。 TCP 只是調(diào)用 IP 接口,向 TCP 提供所有 TCP 需要的服務(wù)。 (3)端口號(hào): 有的時(shí)候,一個(gè) ip 地址不能完整的標(biāo)識(shí)一臺(tái)服務(wù)器 ,這是應(yīng)為一臺(tái)物理性的計(jì)算機(jī)同時(shí)運(yùn)行著多個(gè)應(yīng)用程序,這就需要我們來區(qū)別同一臺(tái)機(jī)子上的不同的服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是 端口。端口實(shí)際是一個(gè) 16 位長的 地址,他的范圍是 0~ 65535 之間,其中 0~ 1023 是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進(jìn)程都只道的, 1024~ 65535 為一般端口,也稱動(dòng)態(tài)端口、連接端口,用來隨時(shí)分配要求通信的個(gè)客戶端應(yīng)用程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端。 Socket 的簡介 Socket,簡稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò) 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 10 上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)成為套接字,套接字是在比較低的層次上通信的。 具體的說:一個(gè)服務(wù)器應(yīng)用程序一般偵聽一個(gè)特定的端口等待客戶端的連接請求,當(dāng)一個(gè)連接請求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過程中,客戶端被分配一個(gè)本地端口與一個(gè) socket 建立連接,客戶端通過寫 socket 來通知服務(wù)器,以讀 socket 中的信息,類似的服務(wù)器也獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)來偵聽原始端口上的 其他連接請求。服務(wù)器也通過它的本地端口連接一個(gè)socket,通過讀寫和客戶端通信。 Socket 程序的工作過程: 建立 Socket 連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接通道。 數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通道。 關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。 具體如下: 服務(wù)器 三次握手: 第一次握手:原主機(jī)發(fā)送一個(gè)帶有本次連接的序號(hào)的請求的一個(gè)數(shù)據(jù)幀 第二次握手:目的主機(jī)收到請求后,如果同意連接,則發(fā)回一個(gè)帶有一個(gè)本次連接序號(hào)和源端機(jī)連接 序列號(hào)的確認(rèn)。 第三此握手:源端機(jī)收到含有兩次初始序列號(hào)的應(yīng)答后,在向目的主機(jī)發(fā)送一個(gè)帶有兩次連接的序列號(hào)的確認(rèn)。 1 服務(wù)器 socket 2 監(jiān)聽 4 接收 5 讀 6 寫 7 關(guān)閉 3 客戶端etsocket 6 寫 5 讀 7 關(guān)閉 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 11 具體過程如下 主機(jī) A 主機(jī) B 2 規(guī)劃設(shè)計(jì) 課題來源 根據(jù)當(dāng)前網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)聊天越來越受各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡(luò)聊天是相當(dāng)有必要,而且在網(wǎng)站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時(shí)可以留著訪客,更重要的是讓訪客透過聊天室實(shí)時(shí)的互相交流。而本人也學(xué)習(xí)過JAVA 語言,對 網(wǎng)絡(luò)編程也較有興趣,為了更好的考驗(yàn)自己對 JAVA 語言的掌握程度,本人就決定以《基于 JAVA 聊天設(shè)計(jì)與實(shí)現(xiàn)》為畢業(yè)設(shè)計(jì),希望通過這一次的能進(jìn)一步提高本人的網(wǎng)絡(luò)開發(fā)編程的能力。 需求分析 聊天系統(tǒng)不外乎兩個(gè)方面,服務(wù)器端和客戶端。簡單分析一下兩個(gè)方面所要完成的任務(wù),對設(shè)計(jì)這個(gè)程序來說,等于完成了一半。首先來看一下服務(wù)器端的任務(wù): 1.服務(wù)器端應(yīng)當(dāng)建立一個(gè) ServerSocket,并且不斷進(jìn)行偵聽是否有客戶端連接或者斷開連接 (包括判斷沒有響應(yīng)的連接超時(shí) )。 2.服務(wù)器端應(yīng)當(dāng)是一個(gè)信息發(fā)送中心,所有 客戶端的信息都傳到服務(wù)器端,由服務(wù)器端根據(jù)要求分發(fā)信息。 以上就是服務(wù)器端最主要的兩個(gè)任務(wù)。不難看出,服務(wù)器端的任務(wù)并不復(fù)雜。 客戶端應(yīng)該完成的工作包括: 1.與服務(wù)器端建立通信通道,向服務(wù)器端發(fā)送信息。 2.接收來自服務(wù)器的信息。 相對服務(wù)器而言,客戶端的任務(wù)更加簡單,有了以上的簡單分析,可以知道,解決上述四個(gè)問題,即完成了該聊天系統(tǒng)的核心。 SYN=1,SEQ= ACK=1,SYN=1,SEQ= aaaaaaaaaa ACK=1 第一次握手,主機(jī) A 向主機(jī) B 發(fā)送連接請求 第二次握手,主機(jī) B 收到主機(jī) A的請求,向主機(jī) A回發(fā)一個(gè)確認(rèn),同時(shí)向主機(jī) A發(fā)送一個(gè)連接請求 第三次握手,主機(jī) A收到主機(jī) B發(fā)送的數(shù)據(jù)包在向主機(jī) B發(fā)送一個(gè)確認(rèn)連接 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 12 3 系統(tǒng)分析與設(shè)計(jì)方案 3. 1 聊天系統(tǒng)的總體設(shè)計(jì)要點(diǎn) 聊天系統(tǒng)的設(shè)計(jì)跟普通網(wǎng)站設(shè)計(jì)有著許多不同的地方,普通網(wǎng)站設(shè)計(jì)所考慮的因素,例如 ,普通網(wǎng)站需要對布局進(jìn)入大量美化以及動(dòng)畫設(shè)計(jì)等等,而聊天室只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個(gè)設(shè)計(jì)要點(diǎn): 實(shí)現(xiàn)思想 在 Inter 上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。因此,程序要在 TCP/IP 環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。 服務(wù)器端工作流程 服務(wù)器端通過 socket()系統(tǒng)調(diào)用創(chuàng)建一個(gè) Socket數(shù)組后 (即設(shè)定了接受連接客戶 的最大數(shù)目 ),與指定的本地端口綁定 bind(),就可以在端口進(jìn)行偵聽 listen()。如果有客戶端連接請求,則在數(shù)組中選擇一個(gè)空 Socket,將客戶端地址賦給這個(gè)Socket。然后登錄成功的客戶就可以在服務(wù)器上聊天了。 客戶端工作流程 客戶端程序相對簡單,只需要建立一個(gè) Socket 與服務(wù)器端連接,成功后通過這個(gè) Socket 來發(fā)送和接收數(shù)據(jù)就可以了。 3 .2 聊天系統(tǒng)的設(shè)計(jì)步驟及功能模塊劃分 聊天系統(tǒng)工作原理圖 內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)士學(xué)位論文 13 聊天系統(tǒng)各功能模塊 ( 1) 服務(wù)器程序模塊 服務(wù)器與客戶間通過套接口 Socket(TCP)連接。在 java中使用套接口相當(dāng)簡單,Java API 為處理套接口的通信提供了一個(gè)類 ,使得編寫網(wǎng)絡(luò)應(yīng)用程序相對容易。服務(wù)器采用多線程以滿足多用戶的請求,并通過創(chuàng)建一個(gè)ServerSocket 對象來監(jiān)聽來自客戶的連接請求,默認(rèn)端口為 9527,然后無限循環(huán)調(diào)用 accept()方法接受客戶程序的連接。 服務(wù)器 線程 源碼: package 。 import 。 import 。 import 。 import 。 import .*。 import 。 import .*
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1