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

正文內(nèi)容

基于socket的即時(shí)通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-免費(fèi)閱讀

  

【正文】 i m。 / /來(lái)自客戶(hù)的輸入流 public Client(int i1, DataOutputStream los, DatalnputStream din) {this. i1= i1。 / /等待客戶(hù)連接 理工大學(xué) 學(xué)士學(xué)位論文 31 DataOutputStream los=nc}v DataOutputStream (s1. get0utputStream())。 聊天服務(wù)器端 聊天服務(wù)端的主要任務(wù)有兩個(gè) : 一是監(jiān)聽(tīng)某端口,建立與客戶(hù)的 Socket 連接,處理一個(gè)客戶(hù)的連接后,能很快再進(jìn)入監(jiān)聽(tīng)狀態(tài) 。文件傳輸除了能實(shí)現(xiàn)文件的接收與發(fā)送的基本功能外,還需要考慮以下方面: (1) 文件在傳輸過(guò)程中應(yīng)不影響用戶(hù)界面的操作; (2) 在傳輸文件前,發(fā)送方應(yīng)先發(fā)送請(qǐng)求,接收方可以同意或拒絕文件發(fā) 送,接收方同意后才能進(jìn)行文件傳輸; (3) 在文件在傳輸過(guò)程中,可以顯示文件的信息,如文件名、保存路徑、文件大??; (4) 文件在傳輸過(guò)程 中 接收方和發(fā)送方都可以取消該文件傳輸過(guò)程 ; (5) 一個(gè)用戶(hù)可以同時(shí)和多個(gè)用戶(hù)進(jìn)行文件傳輸,而且每?jī)蓚€(gè)用戶(hù)之間,可以同時(shí)接收或發(fā)送多個(gè)文件,接收和發(fā)送可以同時(shí)進(jìn)行。并且由于它是無(wú)連接的,因此可以接收網(wǎng)絡(luò)上任何一臺(tái)機(jī)器所發(fā)的數(shù)據(jù)包。服務(wù)器上的監(jiān)聽(tīng)套接字仍處于監(jiān)聽(tīng)的狀態(tài),隨時(shí)準(zhǔn)備接受其他客戶(hù)機(jī)的連接請(qǐng)求。不管是對(duì)單個(gè)的數(shù)據(jù)報(bào),還是對(duì)數(shù)據(jù)包,流式套接字都提供了一種流式數(shù)據(jù)傳輸,是 TCP傳輸協(xié)議的接口 [12]。信息交流的絕大部分功能都在系統(tǒng)的客戶(hù)端完成。 客戶(hù)端 服 務(wù) 器 客戶(hù)端 客戶(hù)端 數(shù) 據(jù)庫(kù) 理工大學(xué) 學(xué)士學(xué)位論文 17 圖 即時(shí)通信系統(tǒng)框架圖 (C/S) 圖 即時(shí)通信系統(tǒng)框架圖 (P2P) 系統(tǒng)功能模塊設(shè)計(jì) 根據(jù)企業(yè)內(nèi)部溝通的需要,以及從實(shí)際出發(fā),系統(tǒng)功能模塊圖如圖 : 1.服務(wù)器功能 (1) 部門(mén)和用戶(hù)管理功能模塊 在企業(yè)內(nèi)部溝通中必須得了解企業(yè)內(nèi)部的組織架構(gòu),這個(gè)模塊就是系統(tǒng)管理員在按照企業(yè)實(shí)際組織結(jié)構(gòu),創(chuàng)建了各級(jí)部門(mén)并輸入部門(mén)信息,然后根據(jù)部門(mén)再創(chuàng)建用戶(hù)信息 ,用戶(hù)不需要自由的添加,最終完成企業(yè)組織的搭建; (2) 用戶(hù)登錄處理模塊 此模塊主要是進(jìn)行登錄驗(yàn)證,如果驗(yàn)證通過(guò),服務(wù)器會(huì)將數(shù)據(jù)庫(kù)中的用戶(hù)狀態(tài)改為在線(xiàn),并通知其他在線(xiàn)用戶(hù); 歷史記錄保存 文件傳輸 點(diǎn)對(duì)點(diǎn)私聊 多人群聊 用戶(hù) 服務(wù)器 文字通信 文字傳輸 用戶(hù) 用戶(hù) 理工大學(xué) 學(xué)士學(xué)位論文 18 (3) 用戶(hù)狀態(tài)通知模塊 用戶(hù)進(jìn)行狀態(tài)檢測(cè),好友在線(xiàn),在好友列表中顯示,如果好友不在列表中, 用戶(hù)狀態(tài)為離線(xiàn); (4) 用戶(hù)消息、文件轉(zhuǎn)發(fā) 用于發(fā)給離線(xiàn)用戶(hù)的消息或文件; (5) 用戶(hù)下線(xiàn)處理模塊 用戶(hù)下線(xiàn),斷開(kāi)連接,修 改數(shù)據(jù)庫(kù)中的用戶(hù)狀態(tài)并通知其他用戶(hù); 2.客戶(hù)端功能 客戶(hù)端提供用戶(hù)友好操作界面,負(fù)責(zé)發(fā)出請(qǐng)求和接收結(jié)果,主要功能有用戶(hù)登錄、文字通信、文件傳輸、歷史記錄保存、好友管理等,通過(guò)底層協(xié)議傳輸數(shù)據(jù),并在協(xié)議解析模塊解析信息。 3. 系統(tǒng)可控性:系統(tǒng)可控性是指系統(tǒng)運(yùn)行期間完成數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)庫(kù)備份、系統(tǒng)故障恢復(fù)等任務(wù)的性能,包括用戶(hù)注冊(cè)管理、登錄管理、客戶(hù)端運(yùn)行過(guò)程中監(jiān)控等模塊的設(shè)計(jì)。 表 系統(tǒng)功能表 文本通信 點(diǎn)對(duì)點(diǎn)會(huì)話(huà)通信,點(diǎn)對(duì)多點(diǎn)的消息和通知群發(fā),信息存儲(chǔ)等功能 文件傳輸 服務(wù)器共享文件查詢(xún),客戶(hù)端上傳文件,客戶(hù)端下載文件等 歷史記錄保存 對(duì)用戶(hù)的通話(huà)記錄進(jìn)行管理 系統(tǒng)協(xié)議的選定 系統(tǒng)的傳輸協(xié)議可以采用 TCP與 UDP兩種協(xié)議。 理工大學(xué) 學(xué)士學(xué)位論文 14 3 對(duì) Socket 通信 需求分析 根據(jù)前面所研究和分析的兩種通信模型及關(guān)鍵技術(shù),本章將這些技術(shù)同系統(tǒng)的需求聯(lián)系起來(lái),提出了系統(tǒng)的總體 結(jié)構(gòu)和工作流程。該軟件通過(guò)創(chuàng)建與數(shù)據(jù)相關(guān)的 Visio 圖來(lái)顯示數(shù)據(jù),這些圖易于刷新,并能夠顯著提高生產(chǎn)率。 5.優(yōu)化的 SQL 查詢(xún)算法,有效地提高查詢(xún)速度。 SQL是用于訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。 5.更好地與 Maven 整合,包括啟動(dòng) Maven 的構(gòu)建和維護(hù) pom 文件。 Eclipse 最初主要用來(lái) Java 語(yǔ)言開(kāi)發(fā),但是目前也可以作為其他計(jì)算機(jī)語(yǔ)言比如 C++和 Python 的開(kāi)發(fā)工具。程序員可只編寫(xiě)一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序 [15]。 Java理工大學(xué) 學(xué)士學(xué)位論文 11 具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言。 有了 JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送 SQL語(yǔ)句就是一件很容易的事。新建的線(xiàn)程執(zhí)行完畢,自動(dòng)關(guān)閉連接,釋放資源。 多線(xiàn)程技術(shù) 操作系統(tǒng)是一個(gè)多任務(wù)的系統(tǒng),支持多任務(wù)調(diào)度和處理,基于該功能所提供的多任務(wù)空間,程序員可以完全控制應(yīng)用程序中每一個(gè)片段的運(yùn)行,從而編寫(xiě)高效率的應(yīng)用程序。 因此即時(shí)通信系統(tǒng)的消息傳輸一般是建立在 TCP協(xié)議基礎(chǔ)之上的,客戶(hù)與服務(wù)器之間都是通過(guò) TCP傳輸數(shù)據(jù),服務(wù)器端口一般固定。其優(yōu)點(diǎn)在于: 1. 使用 UDP 時(shí),每個(gè)數(shù)據(jù)中都給出了完整的地址信息,發(fā)送數(shù)據(jù)之前不需要建立發(fā)送方與接收方的連接,因此減少了開(kāi)銷(xiāo)和發(fā)送數(shù)據(jù)之前的時(shí)延。在網(wǎng)絡(luò)通信傳輸機(jī)制中, TCP是屬于 “面向連接,可靠傳輸 ”的類(lèi)型,面向連接的傳輸意味著在進(jìn)行通信以前 ,需要在兩個(gè)系統(tǒng)之間建立邏輯連接,在每個(gè)數(shù)據(jù)傳輸?shù)倪^(guò)程中都需要進(jìn)行應(yīng)答以保證數(shù)據(jù)包的完整。服務(wù)器始終處于工作狀態(tài),一般同時(shí)為多個(gè)客戶(hù)提供服務(wù),它被動(dòng)地接受客戶(hù)連接,根據(jù)客戶(hù)的請(qǐng)求提供相應(yīng)的服務(wù)。相對(duì)于 C/S模型,其弱化了服務(wù)器的概念,系統(tǒng)中的 各個(gè)節(jié)點(diǎn)不再區(qū)分服務(wù)器和客戶(hù)端的角色關(guān)系,每個(gè)節(jié)點(diǎn)既可請(qǐng)求服務(wù),也可提供服務(wù),節(jié)點(diǎn)之 間可以直接交換資源和服務(wù)而不必通過(guò)服務(wù)器。 本章小 結(jié) 本章首先介紹了該課題的課題背景,初步認(rèn)識(shí)該系統(tǒng),了解了研究該系統(tǒng)的重要性。 6. 界面實(shí)現(xiàn) 在界面實(shí)現(xiàn)的基礎(chǔ)上完成具體的設(shè)計(jì)與實(shí)現(xiàn)工作。 2. 建立了一個(gè)局部的管理的環(huán)境,通過(guò)建立安全對(duì)等組,實(shí)現(xiàn)一個(gè)可在局部范圍內(nèi)從事特定工作的區(qū)域。 2. 安全性 在即時(shí)通信系統(tǒng)的發(fā)展過(guò)程中,如何保障系統(tǒng)安全、為用戶(hù)提供的可靠服務(wù)同樣重要。在這種情況下,有必要自主開(kāi)發(fā)企事業(yè)內(nèi)部的即時(shí)通信軟件 [1]。如何使即時(shí)通信真正為企業(yè)服務(wù),發(fā)揮其長(zhǎng)處,并對(duì)其有效管理,已經(jīng)成為研究的一個(gè)新課題。該系統(tǒng)為用戶(hù)提供了一個(gè)集文字通信、文件傳輸于一體 的即時(shí)通信平臺(tái),基本滿(mǎn)足了企業(yè)用戶(hù)的要求。在對(duì) 即時(shí)通信系統(tǒng)的服務(wù)器端和客戶(hù)端的主要組成模塊詳細(xì)剖析后,論文 研究 了各個(gè)模塊的詳細(xì)設(shè)計(jì)和 實(shí)現(xiàn)方式,分別 研究 了每個(gè)模塊的主要功能,并給出了模塊運(yùn)行效果圖。為此論文研究開(kāi)發(fā)了企業(yè)級(jí)即時(shí)通信系統(tǒng),此系統(tǒng)具備個(gè)人即時(shí)通信系統(tǒng)的功能,是一款可管理、可控制的企業(yè)級(jí)即時(shí)通信系統(tǒng)。 研究現(xiàn)狀 目前,信息產(chǎn)業(yè)在我國(guó)發(fā)展很快,已取得了一些成就。一個(gè)即時(shí)通信系統(tǒng)可能會(huì)保存大量用戶(hù)的個(gè)人信息,如何保證這些信息的安全將是一個(gè)長(zhǎng)期課題 [4]。 3. 建立了一個(gè)具有監(jiān)督機(jī)制的環(huán)境,在安全對(duì)等組中,根據(jù)安全級(jí)別的高低,各個(gè)成員對(duì)等點(diǎn)的某些特定行為可以被監(jiān)控并作相應(yīng)記錄。 論文結(jié)構(gòu) 論文共分六章。接著介紹了國(guó)內(nèi)外研究現(xiàn)狀以及研究意義,了解了該系統(tǒng)在當(dāng)今社會(huì)上的定位以便于在前人研究基礎(chǔ)上能有所創(chuàng)新。 P2P的最大特點(diǎn)就是用戶(hù)之間直接共享資源, 使得 PC不再是被動(dòng)的客戶(hù)端,而成為具有服務(wù)器和客戶(hù)端雙重特征的設(shè)備,當(dāng)然 P2P也有許多不足之處。這就造成了服務(wù)器設(shè)計(jì)的復(fù)雜性。這種方法需要的網(wǎng)絡(luò)開(kāi)銷(xiāo)較大,但卻提供一種可靠的傳輸層服務(wù)。 2. 不使用擁塞控制,也不保證可靠傳輸,因此主機(jī)不需要維持具有許多參數(shù)的、復(fù)雜 的連接狀態(tài)表。由于 TCP是面向連接的,但是在國(guó)內(nèi)目前 IP地址短缺,很多時(shí)候采用通過(guò)局域網(wǎng)連入 Inter的網(wǎng)絡(luò)狀況, TCP的對(duì)等連接顯然不能滿(mǎn)足所有的要求,而且目前由于黑客軟件和病毒的泛濫,大部分上網(wǎng)的個(gè)人計(jì)算機(jī)都配置了防火墻在很大程度上阻止了許多的入站請(qǐng)求。所謂多任務(wù)通常包括這樣兩大類(lèi):?jiǎn)芜M(jìn)程和多線(xiàn)程。這樣,就實(shí)現(xiàn)了 Socket 的連接和多線(xiàn)程通信。換言之,有了 JDBC API,就不必為訪(fǎng)問(wèn) Sybase 數(shù)據(jù)庫(kù)專(zhuān)門(mén)寫(xiě)一個(gè)程序,為 訪(fǎng)問(wèn) Oracle 數(shù)據(jù)庫(kù)又專(zhuān)門(mén)寫(xiě)一個(gè)程序,或?yàn)樵L(fǎng)問(wèn) Informix 數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用 JDBC API 寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送 SQL 調(diào)用。所需要的只是 Java 應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話(huà)的方法。 簡(jiǎn)單地說(shuō), JDBC 可做三件事:與數(shù)據(jù)庫(kù)建立連接、發(fā)送操作數(shù)據(jù)庫(kù)的語(yǔ)句并處理結(jié)果。雖然大多數(shù)用戶(hù)很樂(lè)于將 Eclipse 當(dāng)作 IDE 來(lái)使用,但 Eclipse 的目標(biāo)不僅限于此。 6. Jubula 提供 Java 和 HTML 的自動(dòng)化 GUI 測(cè)試功能。 MySQL 軟件采用了 GPL(GNU 通用公共許可證 )。 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ù)列名。使用 Office Visio 中的各種圖表了解、操作和共享企業(yè)內(nèi)組織系統(tǒng)、資源和流程 的有關(guān)信息 [18]。系統(tǒng)采用基于 TCP/IP 協(xié)議之上的 C/S與 P2P 混合結(jié)構(gòu),即客戶(hù)端與服務(wù)器之間的 C/S 通信結(jié)構(gòu)和客戶(hù)端之間的 P2P 通信結(jié)構(gòu)的結(jié)合。由于本設(shè)計(jì)中信息的交互在服務(wù)器與客戶(hù)機(jī)、客戶(hù)機(jī)與客戶(hù)機(jī)之間進(jìn)行,對(duì)服務(wù)器與客戶(hù)機(jī)的信息傳輸可靠性要求比較高,因此通過(guò) TCP來(lái)實(shí)現(xiàn),而客戶(hù)機(jī)與客戶(hù)機(jī)之間要求信息傳輸效率高,通信協(xié)議就可采用理工大學(xué) 學(xué)士學(xué)位論文 15 UDP協(xié)議。防止重要數(shù)據(jù)的丟失或被篡改,提高系統(tǒng)的運(yùn)行可靠性,增強(qiáng)系統(tǒng)使用者的信心。 圖 系統(tǒng)功能模塊圖 即時(shí)通信功能模塊 服務(wù)器 客戶(hù)端 部門(mén)用戶(hù)管理模塊 用戶(hù)登錄管理模塊 用戶(hù)狀態(tài)通知模塊 用戶(hù)消息轉(zhuǎn)發(fā)模塊 用戶(hù)下線(xiàn)處理模塊 用戶(hù)文件轉(zhuǎn)模塊發(fā) 用戶(hù)登錄與注冊(cè)模塊 文本通信模塊 文本通信模塊 歷史記錄查詢(xún)模塊 用戶(hù)下線(xiàn)模塊 理工大學(xué) 學(xué)士學(xué)位論文 19 服務(wù)器端工作流程 服務(wù)器運(yùn)行后,開(kāi)啟服務(wù),則服務(wù)器開(kāi)始偵聽(tīng)用戶(hù)請(qǐng)求,如有信息發(fā)送過(guò)來(lái),服務(wù)器首先發(fā)送回確認(rèn)信息,然后,建立一個(gè)線(xiàn)程,處理接收到的數(shù)據(jù)??蛻?hù)端主要功能都是基于 P2P技術(shù)的,因此客戶(hù)端功能的實(shí)現(xiàn)主要就是如何建立 P2P的連接,建立連接后就能輕松完成包括發(fā)送消息,文本交談,發(fā)送文件等功能。 當(dāng)用戶(hù)想發(fā)送大批量數(shù)據(jù)或想讓發(fā)送的數(shù)據(jù)按順序無(wú)重復(fù)地到達(dá)目的地時(shí),使用流式套接字是最方便的。傳輸結(jié)束后,客戶(hù)機(jī)調(diào)用 closeSocket 函數(shù)關(guān)閉套接字,服務(wù)器也調(diào)用該函數(shù)關(guān)閉用于監(jiān)聽(tīng)和通信的套接字,釋放資源 。圖 、 圖 用程序時(shí)序圖。 本系統(tǒng)文件傳輸?shù)膶?shí)現(xiàn)主要由 ClientTest、 ClientSocket、 Jprocess和 ServerTest類(lèi)實(shí)現(xiàn)。二是處理與客戶(hù)的通信,由于聊天是客戶(hù)之間進(jìn)行,所以服務(wù)器的職責(zé)是將客戶(hù)發(fā)送的消息轉(zhuǎn)發(fā)給其他客戶(hù) 。 DatalnputStream din=new DatalnputStream (s1. getInputStream())。 this. los= los。 i++){ talks。 for(int i= 0。 / /去往客戶(hù)的輸出流 DatalnputStream din。//建立監(jiān)聽(tīng)服務(wù) while(true) {Socket s1= s. accept( ) 。 考慮到第一種方案,如果要啟動(dòng)多個(gè)客戶(hù)的話(huà),要占用的監(jiān)聽(tīng)端口號(hào)多,通信比第二種方案更不方便,所以下面我是采用第二種方案來(lái)實(shí)現(xiàn)的 。 服務(wù)器端 客戶(hù)端 建立連接 服務(wù)請(qǐng)求 圖 41 基于連接的服務(wù)端、客戶(hù)端流程圖 圖 創(chuàng)建服務(wù)器端 Sock() 聯(lián)編到某一個(gè)端口 調(diào)用 bind 監(jiān)聽(tīng)來(lái)自客戶(hù)端的連
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1