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

正文內(nèi)容

畢業(yè)設(shè)計論文-tcp協(xié)議下的即時通訊軟件的實現(xiàn)(編輯修改稿)

2024-12-22 18:30 本頁面
 

【文章內(nèi)容簡介】 經(jīng)存在很長時間了。流是一個用于傳輸數(shù)據(jù)的對象。數(shù)據(jù)的傳輸有兩個方向 : 1) 如果數(shù)據(jù)從外部源傳輸?shù)匠绦蛑?,這就是讀取流。 2) 如果數(shù)據(jù)從程序傳輸?shù)酵獠吭?,這就是寫入流。 外部源常常是一個文件,但也不完全都是文件,它還可以是: 1) 網(wǎng)絡(luò),使用一定的網(wǎng)絡(luò)協(xié)議與網(wǎng)絡(luò)上其它計算機(jī)或終端交換數(shù)據(jù)。 2) 一個指定的管道。 3) 一塊內(nèi)存區(qū)域。 .NET中的流 在這些情況中,微軟提供了一個 .NET 基類 來讀寫內(nèi)存數(shù)據(jù)使用 處理網(wǎng)絡(luò)數(shù)據(jù)。讀寫管道沒有相應(yīng) 第 5 頁 共 28 頁 的流類,但有一個常見的流類 ,如果要編寫一個這樣的類,可以從這個基類繼承。流對外部數(shù)據(jù)源不做任何假定。外部源還可以是代碼中的一個變量,使用流在變量之間傳輸數(shù)據(jù)的技術(shù)是一個非常有用的技巧,可以在數(shù)據(jù)類型之間轉(zhuǎn)換。 在網(wǎng)絡(luò)編程中我們經(jīng)常會使用到網(wǎng)絡(luò)中的流對象: NetworkStream。它實現(xiàn)了 .NET 中標(biāo)準(zhǔn)的 Stream 機(jī)制,即可以使用 NetworkStream 通訊網(wǎng)絡(luò)套接字用標(biāo)準(zhǔn)的流操作進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的讀寫。它提供以下的功能: 1) 一個統(tǒng)一的從網(wǎng)絡(luò)中讀取數(shù)據(jù)的方法 2) 與其他的 .NET 流兼容,這樣你可以很容易地移植程序。 同步、異步、阻塞和 非阻塞 同步( synchronous):所謂同步方式,就是發(fā)送方發(fā)送數(shù)據(jù)包以后,不等接受方響應(yīng),就接著發(fā)送下一個數(shù)據(jù)包。 異步( asynchronous):異步方式就是當(dāng)發(fā)送方發(fā)送一個數(shù)據(jù)包以后,一直等到接受方響應(yīng)后,才接著發(fā)送下一個數(shù)據(jù)包。 阻塞( Block):指執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時,直到調(diào)用成功才返回,否則此套節(jié)字就一直阻塞在網(wǎng)絡(luò)調(diào)用上,比如調(diào)用 StreamReader 類的 Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中的數(shù)據(jù),如果調(diào)用的時候沒有數(shù)據(jù)到達(dá),那么此 Readlin ( )方法將一直掛在調(diào)用 上,直到讀到一些數(shù)據(jù),此函數(shù)調(diào)用才返回 非阻塞( Unblock):指在執(zhí)行此套接字的網(wǎng)絡(luò)調(diào)用時,不管是否執(zhí)行成功,都立即返回。同樣調(diào)用 StreamReader 類的 Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會一直掛在此函數(shù)調(diào)用上。 在 Windows 網(wǎng)絡(luò)通信軟件開發(fā)中,最為常用的方法就是異步非阻塞套接字。平常所說的 C/S(客戶端 /服務(wù)器)結(jié)構(gòu)的軟件采用的方式就是異步非阻塞模式的。 其實在用 C#進(jìn)行網(wǎng)絡(luò)編程中,我們并不需要了解什么同步、異步、阻塞和非阻塞的原理和工作機(jī)制,因 為在 .Net FrameWrok SDK 中已經(jīng)已經(jīng)把這些機(jī)制給封裝好了。 C/S模型 客戶機(jī) /服務(wù)器模型,又稱為 Client/Server 模型,簡稱 C/S 架構(gòu)。 C/S 計算技術(shù)在信息產(chǎn)業(yè)當(dāng)中占有重要的地位。 這種客戶機(jī) /服務(wù)器模型是一種非對稱式編程模式。該模式的基本思想是把集中在一起的應(yīng)用劃分成為功能不同的兩個部分 ,分別在不同的計算機(jī)上運行,通過它們之間的分工合作來實現(xiàn)一個完整的功能。對于這種模式而言其中一部分需要作為服 第 6 頁 共 28 頁 務(wù)器,用來響應(yīng)并為客戶提供固定的服務(wù);另一部分則作為客戶機(jī)程序用來向服務(wù)器提出請求或要求某 種服務(wù)。 在此“服務(wù)器”是指能在網(wǎng)絡(luò)上提供服務(wù)的任何程序。服務(wù)器接受網(wǎng)絡(luò)上的請求,完成服務(wù)后將結(jié)果返回給申請者。對于簡單的服務(wù),把每個請求用一個 IP 數(shù)據(jù)報發(fā)給服務(wù)器,服務(wù)器用另一個數(shù)據(jù)報返回響應(yīng)。 客戶機(jī)和服務(wù)器都是獨立的計算機(jī)。當(dāng)一臺連入網(wǎng)絡(luò)的計算機(jī)向其他計算機(jī)提供各種網(wǎng)絡(luò)服務(wù) (如數(shù)據(jù)、文件的共享等 )時,它就被叫做服務(wù)器。而那些用于訪問服務(wù)器資料的計算機(jī)則被叫做客戶機(jī)。嚴(yán)格說來,客戶機(jī) /服務(wù)器模型并不是從物理分布的角度來定義,它所體現(xiàn)的是一種網(wǎng)絡(luò)數(shù)據(jù)訪問的實現(xiàn)方式。采用這種結(jié)構(gòu)的系統(tǒng)目前應(yīng)用非常廣泛。如 賓館、酒店的客房登記、結(jié)算系統(tǒng),超市的 POS 系統(tǒng),銀行、郵電的網(wǎng)絡(luò)系統(tǒng)等。 各種網(wǎng)絡(luò)服務(wù)器基本都遵循同樣的算法 :創(chuàng)建一個端口 (Port),接受從網(wǎng)絡(luò)上來的客戶服務(wù)請求,完成計算后把結(jié)果返回給客戶,如此反復(fù)。 即時通信 協(xié)議 協(xié)議是一系列的步驟,它包括雙方或者多方,設(shè)計它的目的是要完成一項任務(wù)。即時 通信 協(xié)議,參與的雙方或者多方是即時 通信 的實體。協(xié)議必須是雙方或者多方參與的,一方單獨完成的就不算協(xié)議。這樣在協(xié)議動作的過程中,雙方必須交換信息,包 括控制信息、狀態(tài)信息等等。這些信息的格式必須是協(xié)議參與方同意并且 遵循的 。好的協(xié)議要求清楚,完整,每一步都必須有明確的定義,并且不會引起誤解 。對每種可能的情況必須規(guī)定具體的動作。 有許多的 IM 系統(tǒng),如 AOL IM、 Yahoo IM 和 MSN IM,它們使用了不同的技術(shù),而且它們互不兼容。為了創(chuàng)建即時 通信 的統(tǒng)一標(biāo)準(zhǔn),人們經(jīng)過了多次嘗試: IETF 的對話初始協(xié)議( SIP)和 即時 通信 對話初始協(xié)議和表示擴(kuò)展協(xié)議( SIMPLE)、應(yīng)用交換協(xié)議( APEX)、顯示和即時 通信 協(xié)議( PRIM)及基于 XML 且開放的可擴(kuò)展 通信 和表示協(xié)議( XMPP)協(xié)議(常稱為 Jabber 協(xié)議)。人 們多次努力,試圖統(tǒng)一各大主要 IM 供應(yīng)商的標(biāo)準(zhǔn)( AOL、 Yahoo 及 Microsoft),但無一成功,且每一種 IM 仍然繼續(xù)使用自己所擁有的協(xié)議。 本系統(tǒng)目的在于實現(xiàn)一個簡單的即時通信過程 ,沒有必要采用通用的比較復(fù)雜的即時通信協(xié)議,因此使用了簡單定義的 XML 標(biāo)記定義來規(guī)范即時通信的各種網(wǎng)絡(luò)信息, 在網(wǎng)絡(luò)中傳輸序列化的 XML 語言。 第 7 頁 共 28 頁 3 系統(tǒng)總體設(shè)計 需求分析 軟件針對局域網(wǎng)內(nèi)部用戶,實現(xiàn)用戶間的即時通信。需要分別實現(xiàn)服務(wù)器端和客戶端的軟件設(shè)計。 服務(wù)器端負(fù)責(zé)監(jiān)聽用戶連接請求,負(fù)責(zé)連接數(shù)據(jù)庫存儲用戶信息,負(fù) 責(zé)發(fā)送給用戶好友信息,負(fù)責(zé)發(fā)送心跳報文檢查用戶在線狀態(tài)并即時讓用戶更新好友在新信息。 客戶端發(fā)起主動連接,向服務(wù)器請求登錄或者注冊??蛻舳丝梢孕薷年欠Q,可以加已知用戶為好友(類似于 MSN的好友添加功能)??蛻舳酥g可以發(fā)起 P2P 模式的聊天,可以傳送文件。 系統(tǒng)基本架構(gòu) 基于 C/S架構(gòu)的 即時通信軟件便于對用戶信息進(jìn)行統(tǒng)一管理和保存 ,面向特定的用戶,對信息的安全控制能力很強(qiáng)。為了減輕服務(wù)器負(fù)擔(dān),客戶端之間的信息傳遞是采用 P2P模式的,服務(wù)器只負(fù)責(zé)用戶的注冊,登錄和用戶在線狀態(tài)的檢驗?;窘Y(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è)計 CLIENT: : (1)可以完成客戶端注冊,客戶端可以通過填寫信息進(jìn)行注冊,信息被發(fā)送到服務(wù)器端。 : (1)客戶可以輸入 賬號 和密碼進(jìn)行 登錄 ,客戶端會發(fā)送 登錄 信息等待服務(wù)器響應(yīng), 登錄 成功后會發(fā)出 登錄 成功信息并刷新好友列表。 : 第 8 頁 共 28 頁 (1)密碼修改:應(yīng)該有密碼修改功能 (2)信息修改:可以更改一些注冊信息 : (1)即時聊天模塊:客戶端與客戶端之間建立線程進(jìn)行即時聊天,也包含有 簡單的 對稱 加解密算法功能。 (2)好友列表:可以對好友列表進(jìn)行添加刪除等動作 : (1)文件傳輸:文件傳輸功能 SERVER: :對客戶端傳送的注冊信息進(jìn)行判斷。 (1)HASH 加密:對用戶的 賬號 和密碼信息進(jìn)行 HASH 加密 (2)重復(fù)用戶檢查:將加密后信息與已存在 賬號 進(jìn)行比較,檢查是否 賬號 已存在,如果存在就返回錯誤信息 (3)注冊成功:將可成功注冊的用戶 賬號 和密碼寫入數(shù)據(jù)庫內(nèi),并向客戶端返回成功信息 : (1)對密碼和信息修改請求進(jìn)行判斷,執(zhí)行和返回修改成功信息 回應(yīng) : (1)對 登錄 的 賬號 和密碼進(jìn)行加密檢查后發(fā)回正確或錯誤情況,并記錄上線信息 (2)好友列表發(fā)送:給成功 登錄 的 賬號 發(fā)送好友列表及好友 上線信息 (3)上線信息發(fā)送:給成功 登錄 的 賬號 的好友發(fā)送在線信息(包括 IP,端口等等信息) : (1)對 登錄 ,在線,離線的用戶情況進(jìn)行統(tǒng)計,記錄和通知 (2)心跳測試:每隔一段時間發(fā)送報文測試用戶是否因意外原因離線 (3)情況記錄:將用戶 登錄 時間, IP,下線時間等信息記錄入數(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離 線文 件 傳 輸消 息 加 密消 息 解 密即 時 聊 天在 線 情 況記 錄Y 圖 2 邏輯 圖 數(shù)據(jù)庫設(shè)計 實體關(guān)系圖 服務(wù)器是作為記錄和讀取數(shù)據(jù)庫信息的載體,與客戶端關(guān)系并不復(fù)雜,這里需 第 10 頁 共 28 頁 要重點 考慮客戶端之間的關(guān)系。用戶與用戶之間的關(guān)系是較為特殊的遞歸關(guān)系,即描 述發(fā)生在兩個相同實體上的關(guān)系。 ER 圖如下: 圖 3 ER圖 詳細(xì)列表 數(shù)據(jù)庫 包含兩個表,分別為 記錄 用戶信息的 TCP_Userinfo 和記錄用戶好友信息的 TCP_Friendinfo。詳細(xì)設(shè)計見下面兩表: 表 1 用戶信息表 TCP_UserInfo TCP_Userinfo 列(屬性)名 類型 主鍵 寬度 是否允許為空 備注 UserID numeric Y 9 NOT NULL 自增長 UserAccount nchar N 20 NOT NULL 用戶帳號 UserNickname nchar N 20 NOT NULL 用戶昵稱,可重復(fù) UserEmail nchar N 20 NOT NULL 用戶 EMAIL JoinDate nchar N 35 NOT NULL 注冊日期 LastLogin nchar Y 20 NOT NULL 最后登錄 IP UserIP nchar Y 20 NOT NULL 用戶 IP UserFav varchar N 100 NOT NULL 用戶好友分組,有默認(rèn)值 UserQuestion nchar Y 20 NOT NULL 密碼問題 UserAnswer nchar Y 20 NOT NULL 密碼答案 UserPassword nchar N 20 NOT NULL 用戶密碼 UserOnline int N 4 NOT NULL 在線狀態(tài), 1 在, 0 不在 表 2 用戶好友表 TCP_FriendInfo TCP_Userinfo 列(屬性)名 類型 主鍵 寬度 是否允許為空 備注 InfoID numeric Y 9 NOT NULL 自增長 UserID nchar N 20 NOT NULL 用戶 ID FriendID nchar N 20 NOT NULL 用戶好友 ID FriendGroup nchar N 20 NOT NULL 用戶好友分組 聊天 文件傳輸 n n 用戶 ID 好友 ID 狀態(tài) IP 客戶端 賬號 昵稱 Email ID 密碼 好友分組 狀態(tài) 客戶端 賬號
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1