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

正文內(nèi)容

基于socket的即時通信系統(tǒng)設計與實現(xiàn)(存儲版)

2025-08-20 10:57上一頁面

下一頁面
  

【正文】 接請求,調(diào)用 listen 阻塞,等待客戶端連接請求調(diào)用accept() 接 受來自于客戶的請求數(shù)據(jù),調(diào)用 read() 數(shù)據(jù)請求數(shù)據(jù) 返回相應的數(shù)據(jù) 調(diào)用 write() 創(chuàng)建服客戶端 Socket() 向服務器端發(fā)送連接請求 調(diào)用 connect() 發(fā)送請求數(shù)據(jù)調(diào)用 write() 接受響應數(shù)據(jù) 理工大學 學士學位論文 28 文件傳輸模塊 1. 文件傳輸?shù)膶崿F(xiàn) 文件傳輸是通過使用多線程、 套接字、自 定義的傳輸命令等技巧,實現(xiàn)了多個用戶之 間 文件傳輸,并可以在傳輸過程 中 進行簡單交互的功能。 對于接收端 (一般為服務器端 ),先用 Socket函數(shù)建立套接字,在通過 bind函數(shù)把這個套接字和準備接收數(shù)據(jù)的 IP地址信息綁定在一起,這和前面流套接字一樣,但不同的是它不必調(diào)用 listen和 accept,只需要等待接收數(shù)據(jù)。用此套接字和客戶機上的套接字形成網(wǎng)絡通信管道的兩個端點,然后就可以在服務器和客戶機之間進行數(shù)據(jù)傳輸了。 理工大學 學士學位論文 24 圖 Socket 的 TCP 連接時序圖 1.流式套接字 流式套接字可以將數(shù)據(jù)按順序無重復地發(fā)送到目的地,它提供的是一種可靠的面向連接的數(shù)據(jù)傳輸方式。 總體實現(xiàn)方案和類的設計 1. 系統(tǒng)總體實現(xiàn)方案 系統(tǒng)將采用 C/S方式設計,服務器主要為客戶端服務,通過響應客戶端的請求訪問數(shù)據(jù)庫,給用戶提供相應的信息,服務器數(shù)據(jù)庫使用 MySql做數(shù)據(jù)庫管理系統(tǒng)。 JDBC C/S(TCP) C/S(TCP) C/S(TCP) P2P(UDP) P2P(UDP) P2P(UDP) 圖 即時通信系統(tǒng)框架圖 基于 Socket 的局域網(wǎng)即時通信系統(tǒng)系統(tǒng) 構架如圖 、圖 所示。服務器需要同時處理所有用戶發(fā)送的各類信息,并且完成數(shù)據(jù)庫存儲、讀取 、更新等操作;還需要采用適當方法提高服務器接收、解讀、處理和發(fā)送數(shù)據(jù)的效率,在指定時間內(nèi)完成需要的通信量,提高系統(tǒng)的即時通信性能,同時保證數(shù)據(jù)處理的公平性,保證各客戶端的信息能夠被及時響應和處理。 表 所示 。以便于查找相關資料,掌握相關技術。它能夠?qū)㈦y以理解的復雜文本和表格轉(zhuǎn)換為一目了然的 Visio 圖。 4.支持多線程,充分利用 CPU 資源。 MySQL 的 SQL“結(jié)構化查詢語言 ”。 4. 提供 Git 版本控制系統(tǒng)的緊密集成。 Eclipse 的本身只是一個框架平臺,但是眾多插件的支持使得 Eclipse 擁有其他功能相對固定的 IDE 軟件很難具有的靈活性。安裝和版本控制將大為簡化。 JDBC 實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。 JDBC 為數(shù)據(jù)庫開發(fā)人員提供了一個標準的 API,據(jù)此可以構建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應用程序。其基本設計思路是 :服務器端啟動后,進入偵聽模式,如果有客戶端連接的信號收到,服務器就自己新建一個 Socket,然后新建一個線程用來和需要連接的客戶端通信,同時,為了能夠使 windows 窗口響應,還要發(fā)送事件給父窗口,接著自己繼續(xù)偵聽。用戶目前可以使用兩種類型的套接字,它們是流式套接字(Stream Sockets) 和數(shù)據(jù)報套接字 (Datagram Sockets),這兩種套接字傳輸?shù)臄?shù)據(jù)類型是不同的,因而其使用方法和相應的程序設計模型也是不同的 [11]。它主要的功能是提供大量數(shù)據(jù)的傳輸并確保其傳輸無誤,并提供錯誤檢查、數(shù)據(jù)復原以及數(shù)據(jù)超時重傳等機制,適用于傳輸可靠性要求比較高的數(shù)據(jù)傳輸 [9]。它不需要通過一些握手協(xié)議確保連接的可靠性,發(fā)送方直接把數(shù)據(jù)廣播到網(wǎng)絡上,理工大學 學士學位論文 8 任何欲接收者都可接收到數(shù)據(jù)。 理工大學 學士學位論文 7 圖 C/S 模型圖 即時通信主流的通信協(xié)議 傳輸控制協(xié)議 TCP和用戶數(shù)據(jù)報 UDP是 TCP/IP協(xié)議族的兩個主要的傳輸協(xié)議,這兩個協(xié)議都使用 IP作為網(wǎng)絡層協(xié)議 [8]。服務器是一個擁有強大處理能力和很大帶寬的高性能計算機,數(shù)據(jù)和信息都保存在服務器上。 P2P 模型 P2P(Peer to Peer,對等連接或?qū)Φ染W(wǎng)絡 )模型,是指網(wǎng)絡中的物理節(jié)點在邏輯上以相同的地位進行通信的模 型,而不是處理能力的對等 [6]。 第六章也是全文的最后一章,對全文所開展的工作進行了總結(jié) 。 5. 數(shù)據(jù)庫的管理與應用 研究系統(tǒng)服務端使用的數(shù)據(jù)庫訪問技術。將大部分工作由手工處理轉(zhuǎn)變?yōu)橛嬎銠C處理,減少了人工錯誤和通信成本,提高了工作人員的工理工大學 學士學位論文 3 作效率。即時通信已經(jīng) 成為語音及文本的在線實時通信的主要技術,它必將成為未來移動商務、在線協(xié)作及 Inter應用的核心,同時也將繼承 IP技術的開放風格,扮演比電子郵件更為重要的角色。還有的就是使用在本地局域網(wǎng)內(nèi)即時傳送消息和文件的小工具比如 WinpopupX,它沒有服務器端,通過在線列表和操作系統(tǒng)的網(wǎng)上鄰居獲取在線用戶或以網(wǎng)上鄰居中的計算機為對象進行通信,沒有安全性也不便于企業(yè)管理。 目前,即時通信和電話、傳真一樣,已經(jīng)成為企業(yè)員工商 務溝通中廣泛使用的交流工具,但個人即時通信軟件在提高了溝通效率的同時也帶來了一些難以管理的問題,如安全性問題、用戶伸縮性問題等。 本 文 在現(xiàn)有的網(wǎng)絡通信技術、數(shù)據(jù)庫技術和信息安全技術的基礎上設計并實現(xiàn)了新型的企業(yè)即時通信系統(tǒng) (EIM, Enterprise Instant Messaging)。 系統(tǒng)實現(xiàn)后,對系統(tǒng)進行了功能測試,并分析測試數(shù)據(jù)。 通過對國內(nèi)外現(xiàn)有的即時通信軟件詳細地分析研究,提出了不同的即時通信模型,構建了適合于企業(yè)的即時通信系統(tǒng),并通過實踐驗證了其具有很好的可行性與適用性。國家研究院對中國信息化調(diào)理工大學 學士學位論文 2 查結(jié)果顯示, “實時企業(yè) ”這一概念被受訪者認為是中國信息化最有應用前景的技術,認同率高達 60%[2],顯 示了即時通信軟件在國內(nèi)市場強勁的發(fā)展勢頭。所以,建立統(tǒng)一、完善的安全體系也是未來發(fā)展的一個主要趨勢。 研究內(nèi)容 通過對市場上現(xiàn)有的國內(nèi)外商業(yè)級即時通信系統(tǒng)的功能、架構詳細的研究,將一些技術和想法融入到系統(tǒng)的實現(xiàn)過程中,論文研究的基于 Socket 的局域網(wǎng)即時 通信系統(tǒng)主要實現(xiàn)點對點的私聊、多人群聊、即時發(fā)送文件和歷史記錄的保存等功能。 理工大學 學士學位論文 4 第一章為緒論,介紹了本文的研究背景,提出了實現(xiàn)即時通信的關鍵技術,并闡述了這些技術在國內(nèi)外的研究現(xiàn)狀以及開發(fā)此通信軟件的必要性與可行性,進而提出了本文的研究方向,即設計 一個企業(yè)即時通信系統(tǒng)。接著介紹了研究內(nèi)容,明確了該系統(tǒng)所研究的方向和內(nèi)容。首先 P2P缺乏管理機制,管理者再也無法對其用戶進行必要的管理,不像在 C/S模式中只需在中心點進行管理,所以 P2P模型的網(wǎng)絡資源往往并不可靠 [6]。特別是像即時通信服務器這類具有社區(qū)性的服務器,它只有為群體提供服務才有意義。 UDP是屬于 “面向無連接,不可靠傳輸 ”的類型,該協(xié)議只負責接收和傳送上層協(xié)議傳遞的消息, UDP本身不做任何檢測、修改與應答,上層協(xié)議需要自己處理這些事務。 3. UDP不進行流量控制,沒有序列與確認、沒有超時重發(fā)等機制,因此它處理和傳輸數(shù)據(jù)的速度快。所以數(shù)據(jù)傳輸大都是先嘗試直接連接,如果連接不通的話采用通過服務器中轉(zhuǎn)的方式。進程是指在系統(tǒng)中正在運行的一個應用程序,當一個程序開始運行時,它就是一個進程,進程包括運行中的程序和程序所使用到的內(nèi)存和系統(tǒng)資源 [13];而一個進程又是由多個線程所組成的,線程是程序中的一個執(zhí)行流,線程是系統(tǒng)分配處理器時資源的基本單元,或者進程之內(nèi)獨立執(zhí)行的一個單元,對于操作系統(tǒng)而言,其調(diào) 度單元是線程 [14]。 JDBC 技術 本系統(tǒng)采用的是客戶 /服務器三層結(jié)構,即客戶端、服務器以及數(shù)據(jù)庫。同時,將 Java 語言和 JDBC 結(jié)合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是 Java 語言 “編寫一次,處處運行 ”的優(yōu)勢。而 JDBC 正是作為此種用途的機制。 開發(fā)工具介紹 在開發(fā)過程中主要用到 Eclipse、 MySQL 數(shù)據(jù)庫和 Microsoft Office Visio 等工具,下面對這些開發(fā)工具做一下詳細 介紹。 Eclipse 還包括插件開發(fā)環(huán)境,這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構建與 Eclipse 環(huán)境無縫集成的工具。 MySQL 簡介 MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典 MySQL AB公司。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了 MySQL 作為網(wǎng)站數(shù)據(jù)庫 [17]。 7.提供 TCP/IP、 ODBC 和 JDBC 等多種數(shù)據(jù)庫連接途徑。 雖然 Visio 是繪制流程圖使用率最高的軟件之一,但也有自己的一些不足。系統(tǒng)的工作流程分為服務器端和客戶端工作流程。在本系統(tǒng)的設計中,協(xié)議選擇既有 TCP協(xié)議也有 UDP協(xié)議,系統(tǒng)中的 C/S模式采用 TCP協(xié)議, P2P模式采用 UDP協(xié)議。 本章小結(jié) 本章主要對系統(tǒng)的總體設計及功能模塊進行描述,首先對系統(tǒng)的總體需求進 行分析,然后介紹各功能模塊,最后對客戶端,和服務器的工作流程進行了描述,并畫出流程圖,為開發(fā)系統(tǒng)做好準備。在線程里,按照接收到數(shù)據(jù)的類別 (用特殊字符來辨別 ),進行相應的處理,如有需要,會向用戶發(fā)送處理的結(jié)果,處理結(jié)束后,線程就結(jié)束了。 2. 系統(tǒng)通信核心類 類 用于描述一組具有相同屬性、操作、關系和語義的對象 [20]。此外 ,在數(shù)據(jù)傳輸時,如果連接斷開,應用程序會被通知的。 2.數(shù)據(jù)報套接字 數(shù)據(jù)報套接字節(jié)提供了不可靠的、無連接的數(shù)據(jù)包通信方式。 理工大學 學士學位論文 26 服務請求 服務響應 圖 流式套接字圖 建立連接 請求數(shù)據(jù) 應答數(shù)據(jù) 圖 數(shù)據(jù)報套接字圖 Socket() Bind() 等待客戶請求 Rendform()() Close() Send() Send() Rendform() Close() Bind() Socket() 處理請求 Socket() Bind() Listen() 等待客戶請求 Accept() Close() Rend() Write() Connect() Write() Read() Close() Socket() 理工大學 學士學位論文 27 面向連接的 Socket 機制的模塊設計 圖 是一個典型的面向連接的 Socket 通信機制的示意圖。其中 ServerTest類主要用于發(fā)送文件, ClientTest類用于計算文件的長度、 接收文件,Jprocess類用于生成文件發(fā)送的進度條,文件傳輸功能實現(xiàn)如圖 。 為了實現(xiàn)兩個目標,必須設法將任務分開,可 以借助多線程技術,在服務方為每個客戶連接建立一個通信線程,通信線程負責接受客戶的消息并將消息轉(zhuǎn)發(fā)給其他客戶 。 allclient }〔 lientnum }=nc}v Client(dientnum,dos, din)。 this. lin= lin。二 .alldient } i}.los. writeUTF ( metesage)。 / /讀客戶數(shù)據(jù),無數(shù)據(jù)時線程掛起 。 //客戶標識 DataOutputStream los。 //連接客戶數(shù) public static void main( String args}]) {try{ServerSocket s= nrw ServerSocket( 8000)。 方案二 : 將服務器寫成多線程的, 不同的處理線程為不同的客戶服務 .主線程只負責循環(huán)等待,處理線程負責網(wǎng)絡連接,接收客戶輸入的信息 。通過該方式建立起來的 C/S 程序即可實現(xiàn)一臺服務器端和一臺客戶端的通信。 無連接的服務器一般都是面向事務處理的,大多數(shù)的數(shù)據(jù)報套接字應用程序?qū)⑹褂靡粋€事件序列來完成客戶應用程序和服務器應用程序之間的通信, 其編程過程相對流式套接字要簡單些如圖 。 首先,服務器要創(chuàng)建一個用于監(jiān)聽的套接字,把它綁定到眾所周知的服務器端口上,TCP 服務端 Socket() Bind() Listen() 等待客戶請求 Accept() CloseSocket()
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1