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

正文內(nèi)容

畢業(yè)論文-基于java的聊天系統(tǒng)的設(shè)計與實現(xiàn)(編輯修改稿)

2025-02-08 11:59 本頁面
 

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