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

正文內(nèi)容

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

2024-12-22 18:30 本頁(yè)面
 

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