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

正文內(nèi)容

aspnet論文基于tcp協(xié)議的簡單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)cs-在線瀏覽

2024-12-16 19:01本頁面
  

【正文】 ............................................................................... 11 使用 XML 定義的即時(shí)通信協(xié)議 ................................................................................ 11 信息結(jié)構(gòu) amp。 第 1 頁 共 28 頁 1 引言 課題背景 即時(shí)通信 是一個(gè)終端連往一個(gè) 即時(shí)通信 網(wǎng)路的服務(wù)。大部分的 即時(shí)通信 服務(wù)提供了 presence awareness 的特性──顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在在線與能否與聯(lián)絡(luò)人交談。四名 以色列青年于 1996 年 7 月成立 Mirabilis 公司,并在 11 月份發(fā)布了最初的 ICQ版本,在六個(gè)月內(nèi)有 85萬用戶注冊使用。 這些服務(wù)有賴于許多想法更久的 (與普遍 )的在線聊天媒介,如 Inter Relay Chat一樣知名。之后在 1980 年代, UNIX/Linux 的交談實(shí)時(shí) 信息 被廣泛的使用于工程師與學(xué)術(shù)界, 1990年代 即時(shí)通信 更跨越了因特網(wǎng)交流。在 ICQ 的介紹之后,同時(shí)在許多地方有一定數(shù)量的 即時(shí)通信 方式發(fā)展,且各式的 即時(shí)通信 程序有獨(dú)立的協(xié)議,無法彼此互通。 近年來,許多 即時(shí)通信 服務(wù)開始提供視訊會(huì)議的 功能,網(wǎng)絡(luò)電話 (VoIP),與網(wǎng)絡(luò)會(huì)議服務(wù)開始整合為兼有影像會(huì)議與實(shí)時(shí) 信息 的功能。 國內(nèi)外研究現(xiàn)狀 國外研究現(xiàn)狀 當(dāng)今,國際上對網(wǎng)絡(luò) 通信 系統(tǒng)研究的較好的公司有,思科, Sun, Ms 等公司,思科主要研究的是底層的傳輸; MS, Sun 公司研究的是應(yīng)用層。但是,其捆綁的 msn,無論從功能上,還是技術(shù)上來說,都不算是非常先進(jìn)的。 MS 不擇手段 的想打跨網(wǎng)景,可見其對網(wǎng)絡(luò)的重視。微軟,想用同樣的 辦 第 2 頁 共 28 頁 法搞跨對手,因此它拿出了 Visual c,來對抗 Java。應(yīng)用層上的產(chǎn)品就更顯種類繁多。 msn,是 MS 的產(chǎn)品,同樣在國內(nèi)沒什么市場,所以,對其原理,也很少被討論過。此外,國際上最近出先了新的瀏覽器 Firefox,其性能據(jù)說是遠(yuǎn)高于 ie,也許在網(wǎng)絡(luò)的天下, Ms 又有了更強(qiáng)勁的對手。所以效率上不錯(cuò)。 本課題研究的意義 本課題目標(biāo)是實(shí)現(xiàn)局域網(wǎng)用戶之間的即時(shí)交流和文件傳輸,通過基礎(chǔ)的網(wǎng)絡(luò)SOKET 編程,為局域網(wǎng)內(nèi)部的即時(shí) 通信 提供一個(gè)簡單而較安全的解決方案。 2 相關(guān)技術(shù)介紹 .NET開發(fā)平臺(tái)及 C# .NET開發(fā)語言 .NET 框架是 Microsoft 公司推出的一種全新的開發(fā)平臺(tái) ,提供了統(tǒng)一的、面向?qū)ο蟛⑶铱梢詳U(kuò)展的編程類庫和完善的集成開發(fā)環(huán)境 ,大大簡化了應(yīng)用程序的開發(fā)過程 ,并且具有良好的移植性和安全性。 C是由 C和 C++派生而來的一種“簡單、流行、面向?qū)ο?、類型安全”的程序設(shè)計(jì)語言,其綜合了 Visual basic的高效 率和 C++的強(qiáng)大功能,然而更多的人感覺 C更類似 JAVA。與 C相比, .NET 所支持的其它語言顯然是配角,包括 VC++.NET 在內(nèi)。 可見 ++.NET 在 NET 框架中已經(jīng)退化成了底層的語言了,就像 C++之前 的標(biāo)準(zhǔn) C語言一樣,以后將只有開發(fā)底層或桌面程序的程序員使用它。 TCP 協(xié)議 TCP/IP 網(wǎng)絡(luò)協(xié)議 協(xié)議是對等的網(wǎng)絡(luò)實(shí)體之間通信的規(guī)則,可以簡單地理解為網(wǎng)絡(luò)上各計(jì)算機(jī)彼此交流的一種“語言”。相鄰層之間的接口定義了下層向上層提供的基本操作和服務(wù),下層向上層提供的服務(wù)分兩種形式:面向連接的服務(wù)和無連接的服務(wù)。 TCP/IP 參考模型是因特網(wǎng)( Inter)的基礎(chǔ)。通常說的 TCP/IP 是一組協(xié)議的總稱, TCP/IP 實(shí)際上是一個(gè)協(xié)議族,包括 100 多個(gè)相互關(guān)聯(lián)的協(xié)議,其中 IP(Inter Protocol, 網(wǎng)際協(xié)議 )是網(wǎng)絡(luò)層最主要的協(xié)議; TCP(Transmission Control Protocol,傳輸控制協(xié)議 )和 UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議是傳輸層中最主要的協(xié)議 ),一般認(rèn)為 IP、 TCP、 UDP 是最根本的三 種協(xié)議,是其他協(xié)議的基礎(chǔ)。 TCP 協(xié)議就使用這種可靠通信。 TCP 要求在發(fā)送數(shù)據(jù)之前必須打開連接。客戶應(yīng)用程序必須執(zhí)行一 個(gè)主動(dòng)打開( active open),為此,它向服務(wù)器應(yīng)用程序發(fā)送一個(gè)同步序列號(hào) 第 4 頁 共 28 頁 ( SYN)以標(biāo)識(shí)連接。服務(wù)器必須向客戶發(fā)送一個(gè)確認(rèn)( ACK)以及服務(wù)器的序列號(hào)( SYN)。 現(xiàn)在可以發(fā)送和接收消息了。如果在收到 ACK之前發(fā)送方已經(jīng)超時(shí),則消息將被放到重發(fā)隊(duì)列中以再次發(fā)送。 套接字 套接字這個(gè)術(shù)語并沒有定義某個(gè)協(xié)議:它具有兩層含義,但兩者都與一個(gè)協(xié)議相關(guān)。 BSD套接字在經(jīng)過修改后被用作 Windows 環(huán)境的編程接口(并且被命名為 WinSock)。 Windows Sockets 是一個(gè)獨(dú)立于協(xié)議的編程接口,用于編寫網(wǎng)絡(luò)應(yīng)用程序。在 TCP/IP 中, 每個(gè)終端都與一個(gè) IP地址和一個(gè)端口號(hào)綁定。流失套接字用 TCP/IP 協(xié)議來使用面向連接的通信;另一方面,數(shù)據(jù)報(bào)套接字用 UDP/IP 來使用無連接通信。流是一個(gè)用于傳輸數(shù)據(jù)的對象。 2) 如果數(shù)據(jù)從程序傳輸?shù)酵獠吭?,這就是寫入流。 2) 一個(gè)指 定的管道。 .NET中的流 在這些情況中,微軟提供了一個(gè) .NET 基類 來讀寫內(nèi)存數(shù)據(jù)使用 處理網(wǎng)絡(luò)數(shù)據(jù)。流對外部數(shù)據(jù)源不做任何假定。 在網(wǎng)絡(luò)編程中我們經(jīng)常會(huì)使用到 網(wǎng)絡(luò)中的流對象: NetworkStream。它提供以下的功能: 1) 一個(gè)統(tǒng)一的從網(wǎng)絡(luò)中讀取數(shù)據(jù)的方法 2) 與其他的 .NET 流兼容,這樣你可以很容易地移植程序。 異步( asynchronous):異步方式就是當(dāng)發(fā)送方發(fā)送一個(gè)數(shù)據(jù)包以后,一直等到接受方響應(yīng) 后,才接著發(fā)送下一個(gè)數(shù)據(jù)包。同樣調(diào)用 StreamReader 類的 Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管 是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。平常所說的 C/S(客戶端 /服務(wù)器)結(jié)構(gòu)的軟件采用的方式就是異步非阻塞模式的。 C/S 模型 客戶機(jī) /服務(wù)器模型,又稱為 Client/Server 模型,簡稱 C/S 架構(gòu)。 這種客戶機(jī) /服務(wù)器模型是一種非對稱式編程模式。對于這種模式而言其中一部分需要作為服 第 6 頁 共 28 頁 務(wù)器,用來響應(yīng)并為客戶提供固定的服務(wù);另一部分則作為客戶機(jī)程序用來向服務(wù)器提出請求或要求某種服務(wù)。服務(wù)器接受網(wǎng)絡(luò)上的請求,完成服務(wù)后將結(jié)果返回給申請者。 客戶機(jī)和服務(wù)器都 是獨(dú)立的計(jì)算機(jī)。而那些用于訪問服務(wù)器資料的計(jì)算機(jī)則被叫做客戶機(jī)。采用這種結(jié)構(gòu)的系統(tǒng)目前應(yīng)用非常廣泛。 各種網(wǎng)絡(luò)服務(wù)器基本都遵循同樣的算法 :創(chuàng)建一個(gè)端口 (Port),接受從網(wǎng)絡(luò)上來的客戶服務(wù)請求,完成計(jì)算后把結(jié)果返回給客戶,如此反復(fù)。即時(shí) 通信 協(xié)議,參與的雙方或者多方是即時(shí) 通信 的實(shí)體。這樣在協(xié)議動(dòng)作的過程中,雙方必須交換信息,包 括控制信息、狀態(tài)信息等等。好的協(xié)議要求清楚,完整,每一步都必須有明確的定義,并且不會(huì)引起誤解 。 有許多的 IM 系統(tǒng),如 AOL IM、 Yahoo IM 和 MSN IM,它們使用了不同的技術(shù),而且它們互 不兼容。人們多次努力,試圖統(tǒng)一各大主要 IM 供應(yīng)商的標(biāo)準(zhǔn)( AOL、 Yahoo 及 Microsoft),但無一成功,且每一種 IM 仍然繼續(xù)使用自己所擁有的協(xié)議。 第 7 頁 共 28 頁 3 系統(tǒng)總體設(shè)計(jì) 需求分析 軟件針對局域網(wǎng)內(nèi)部用戶,實(shí)現(xiàn)用戶間的即時(shí)通信。 服務(wù)器端負(fù)責(zé)監(jiān)聽用戶連接請求,負(fù)責(zé)連接數(shù)據(jù)庫存儲(chǔ)用戶信息,負(fù)責(zé)發(fā)送給用戶好友信息,負(fù)責(zé)發(fā)送心跳報(bào)文檢查用戶在線狀態(tài)并即時(shí)讓用戶更新好友在新信息??蛻舳丝梢孕薷年欠Q,可以加已知用戶為好友(類似于 MSN 的好友添加功能)。 系統(tǒng)基本架構(gòu) 基于 C/S 架構(gòu)的 即時(shí)通信軟件便于對用戶信息進(jìn)行統(tǒng)一管理和保存 ,面向特定的用戶,對信息的安全控制能力很強(qiáng)。基本結(jié)構(gòu)如圖: C L I E N TC L I E N T注 冊 和 登 錄 信 息S E R V E R返 回 信 息注 冊 和 登 錄 信 息返 回 信 息聊 天 信 息 , 文 件 傳 輸圖 1 系統(tǒng)基本架構(gòu) 功能模塊設(shè)計(jì) CLIENT: : (1)可以完成客戶端注冊,客戶端可以通過填寫信息進(jìn)行注冊,信息被發(fā)送到服務(wù)器端。 : 第 8 頁 共 28 頁 (1)密碼修改:應(yīng)該有密碼修改功能 (2)信息修改:可以更改一些注冊信息 : (1)即時(shí)聊天模塊:客戶端與客戶端之間建立線程進(jìn)行即時(shí)聊天,也包含有 簡單的 對稱 加解密算法功能。 (1)HASH 加密:對用戶的 賬號(hào) 和密碼信息進(jìn)行 HASH 加密 (2)重復(fù)用戶檢查:將加密后信息與已存在 賬號(hào) 進(jìn)行比較,檢查是否 賬號(hào) 已存在 ,如果存在就返回錯(cuò)誤信息 (3)注冊成功:將可成功注冊的用戶 賬號(hào) 和密碼寫入數(shù)據(jù)庫內(nèi),并向客戶端返回成功信息 : (1)對密碼和信息修改請求進(jìn)行判斷,執(zhí)行和返回修改成功信息 回應(yīng) : (1)對 登錄 的 賬號(hào) 和密碼進(jìn)行加密檢查后發(fā)回正確或錯(cuò)誤情況,并記錄上線信息 (2)好友列表發(fā)送:給成功 登錄 的 賬號(hào) 發(fā)送好友列表及好友上線信息 (3)上線信息發(fā)送:給成功 登錄 的 賬號(hào) 的好友發(fā)送在線信息(包括 IP,端口等等信息) : (1)對 登錄 ,在線,離線的用戶情況進(jìn)行統(tǒng)計(jì),記錄和通知 (2)心跳測試:每隔一段時(shí)間發(fā)送報(bào)文測試用戶是否因意外原因離線 (3)情況記錄: 將用戶 登錄 時(shí)間, IP,下線時(shí)間等信息記錄入數(shù)據(jù)庫 第 9 頁 共 28 頁 邏輯 圖 注 冊登 錄注 冊 回 應(yīng)在 線 情 況C L I E N T S E R V E R用 戶 信息 管 理密 碼 修 改信 息 修 改取 得 好 友列 表修 改 回 應(yīng)H A S H加 密注 冊 成 功登 錄 回 應(yīng)好 友 列 表發(fā) 送上 線 信 息發(fā) 送注 冊 信息 檢 查注 冊 失 敗YN心 跳測 試N離 線文 件 傳 輸消 息 加 密消 息 解 密即 時(shí) 聊 天在 線 情 況記 錄Y 圖 2 邏輯 圖 數(shù)據(jù)庫設(shè)計(jì) 實(shí)體關(guān)系圖 服務(wù)器是作為記錄和讀取數(shù)據(jù)庫信息的載體,與客戶端關(guān)系并不復(fù)雜,這里需 第 10 頁 共 28 頁 要重點(diǎn) 考慮客戶端之間的關(guān)系。 ER 圖如下: 圖 3 ER 圖 詳細(xì)列表 數(shù)據(jù)庫 包含兩個(gè)表,分別為 記錄 用戶信息的 TCP_Userinfo 和記錄用戶好友信息的 TCP_Friendinfo。 這兩個(gè) C類定義了包括服務(wù)器信息,狀態(tài)信息,注冊信息,登錄信息,聊天信息或者請求文件傳輸信息的函數(shù),服務(wù)器和客戶端通過將它們實(shí)例化和序列化再轉(zhuǎn)換成流在網(wǎng)絡(luò)上進(jìn)行傳輸。 private string _password。 private string _。//表示注冊或者 登錄 信息,客戶端信息 0為注冊, 1為 登錄 ;服務(wù)器返回信息 0為用戶已存在, 1為注冊成功 ,2為服務(wù)器未知錯(cuò)誤, 3為 CLIENT在線檢查, 10為 登錄失敗, 11為 登錄 成功 private Friend[] _friend。 private string _fg。 } set { _nickname = value。 } set { _password = value。 } set { _accounts = value。 } set { _ = value。 } 第 12 頁 共 28 頁 set { _info = value。 } set { _friend = value。 } set { _fn = value。 } set { _fg = value。 服務(wù)器和 客戶 端都可 以通過 相同的 代碼 對 UMESSAGE 賦 值,再 通過XmlSerializer 方法進(jìn)行將 UMESSAGE 序列化為 XML 文檔,最后將 XML 文檔轉(zhuǎn)化為網(wǎng)絡(luò)流進(jìn)行傳輸。 =。 =。 =null。數(shù)據(jù)庫的設(shè)計(jì)和信息的傳遞辨別都是比較難實(shí)現(xiàn)的。 數(shù)據(jù)庫以 用戶 ID 為標(biāo)準(zhǔn)對好友 ID 和分組信息進(jìn)行內(nèi)連接查詢,就可以得到基本的好友信息了。 + uid + 39。 using 。 namespace TCP { public class FriendStruct { public struct FileInfo { public int filere。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1