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

正文內(nèi)容

aspnet論文基于tcp協(xié)議的簡(jiǎn)單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)cs(編輯修改稿)

2024-11-18 19:01 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 r 類的 Readlin ( )方法讀取網(wǎng)絡(luò)緩沖區(qū)中數(shù)據(jù),不管 是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。 在 Windows 網(wǎng)絡(luò)通信軟件開發(fā)中,最為常用的方法就是異步非阻塞套接字。平常所說的 C/S(客戶端 /服務(wù)器)結(jié)構(gòu)的軟件采用的方式就是異步非阻塞模式的。 其實(shí)在用 C#進(jìn)行網(wǎng)絡(luò)編程中,我們并不需要了解什么同步、異步、阻塞和非阻塞的原理和工作機(jī)制,因?yàn)樵?.Net FrameWrok SDK 中已經(jīng)已經(jīng)把這些機(jī)制給封裝好了。 C/S 模型 客戶機(jī) /服務(wù)器模型,又稱為 Client/Server 模型,簡(jiǎn)稱 C/S 架構(gòu)。 C/S 計(jì)算技術(shù)在信息產(chǎn)業(yè)當(dāng)中占有重要的地位。 這種客戶機(jī) /服務(wù)器模型是一種非對(duì)稱式編程模式。該模式的基本思想是把集中在一起的應(yīng)用劃分成為功能不同的兩個(gè)部分 ,分別在不同的計(jì)算機(jī)上運(yùn)行,通過它們之間的分工合作來實(shí)現(xiàn)一個(gè)完整的功能。對(duì)于這種模式而言其中一部分需要作為服 第 6 頁 共 28 頁 務(wù)器,用來響應(yīng)并為客戶提供固定的服務(wù);另一部分則作為客戶機(jī)程序用來向服務(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)。 客戶機(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ù)器資料的計(jì)算機(jī)則被叫做客戶機(jī)。嚴(yán)格說來,客戶機(jī) /服務(wù)器模型并不是從物理分布的角度來定義,它所體現(xiàn)的是一種網(wǎng)絡(luò)數(shù)據(jù)訪問的實(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ò)上來的客戶服務(wù)請(qǐng)求,完成計(jì)算后把結(jié)果返回給客戶,如此反復(fù)。 即時(shí)通信 協(xié)議 協(xié)議是一系列的步驟,它包括雙方或者多方,設(shè)計(jì)它的目的是要完成一項(xiàng)任務(wù)。即時(shí) 通信 協(xié)議,參與的雙方或者多方是即時(shí) 通信 的實(shí)體。協(xié)議必須是雙方或者多方參與的,一方單獨(dú)完成的就不算協(xié)議。這樣在協(xié)議動(dòng)作的過程中,雙方必須交換信息,包 括控制信息、狀態(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)過了多次嘗試: IETF 的對(duì)話初始協(xié)議( SIP)和 即時(shí) 通信 對(duì)話初始協(xié)議和表示擴(kuò)展協(xié)議( SIMPLE)、應(yīng)用交換協(xié)議( APEX)、顯示和即時(shí) 通信 協(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)目的在于實(shí)現(xiàn)一個(gè)簡(jiǎn)單的即時(shí)通信過程 ,沒有必要采用通用 的比較復(fù)雜的即時(shí)通信協(xié)議,因此使用了簡(jiǎn)單定義的 XML 標(biāo)記定義來規(guī)范即時(shí)通信的各種網(wǎng)絡(luò)信息, 在網(wǎng)絡(luò)中傳輸序列化的 XML 語言。 第 7 頁 共 28 頁 3 系統(tǒng)總體設(shè)計(jì) 需求分析 軟件針對(duì)局域網(wǎng)內(nèi)部用戶,實(shí)現(xiàn)用戶間的即時(shí)通信。需要分別實(shí)現(xiàn)服務(wù)器端和客戶端的軟件設(shè)計(jì)。 服務(wù)器端負(fù)責(zé)監(jiān)聽用戶連接請(qǐng)求,負(fù)責(zé)連接數(shù)據(jù)庫(kù)存儲(chǔ)用戶信息,負(fù)責(zé)發(fā)送給用戶好友信息,負(fù)責(zé)發(fā)送心跳報(bào)文檢查用戶在線狀態(tài)并即時(shí)讓用戶更新好友在新信息。 客戶端發(fā)起主動(dòng)連接,向服務(wù)器請(qǐng)求登錄或者注冊(cè)??蛻舳丝梢孕薷年欠Q,可以加已知用戶為好友(類似于 MSN 的好友添加功能)??蛻舳酥g可 以發(fā)起 P2P 模式的聊天,可以傳送文件。 系統(tǒng)基本架構(gòu) 基于 C/S 架構(gòu)的 即時(shí)通信軟件便于對(duì)用戶信息進(jìn)行統(tǒng)一管理和保存 ,面向特定的用戶,對(duì)信息的安全控制能力很強(qiáng)。為了減輕服務(wù)器負(fù)擔(dān),客戶端之間的信息傳遞是采用 P2P 模式的,服務(wù)器只負(fù)責(zé)用戶的注冊(cè),登錄和用戶在線狀態(tài)的檢驗(yàn)。基本結(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)可以完成客戶端注冊(cè),客戶端可以通過填寫信息進(jìn)行注冊(cè),信息被發(fā)送到服務(wù)器端。 : (1)客戶可以輸入 賬號(hào) 和密碼進(jìn)行 登錄 ,客戶端會(huì)發(fā)送 登錄 信息等待服務(wù)器響應(yīng), 登錄 成功后會(huì)發(fā)出 登錄 成功信息并刷新好友列表。 : 第 8 頁 共 28 頁 (1)密碼修改:應(yīng)該有密碼修改功能 (2)信息修改:可以更改一些注冊(cè)信息 : (1)即時(shí)聊天模塊:客戶端與客戶端之間建立線程進(jìn)行即時(shí)聊天,也包含有 簡(jiǎn)單的 對(duì)稱 加解密算法功能。 (2)好友列表:可以對(duì)好友列表進(jìn)行添加刪除等動(dòng)作 : (1)文件傳輸:文件傳輸功能 SERVER: :對(duì)客戶端傳送的注冊(cè)信息進(jìn)行判斷。 (1)HASH 加密:對(duì)用戶的 賬號(hào) 和密碼信息進(jìn)行 HASH 加密 (2)重復(fù)用戶檢查:將加密后信息與已存在 賬號(hào) 進(jìn)行比較,檢查是否 賬號(hào) 已存在 ,如果存在就返回錯(cuò)誤信息 (3)注冊(cè)成功:將可成功注冊(cè)的用戶 賬號(hào) 和密碼寫入數(shù)據(jù)庫(kù)內(nèi),并向客戶端返回成功信息 : (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ì) 登錄 ,在線,離線的用戶情況進(jìn)行統(tǒng)計(jì),記錄和通知 (2)心跳測(cè)試:每隔一段時(shí)間發(fā)送報(bào)文測(cè)試用戶是否因意外原因離線 (3)情況記錄: 將用戶 登錄 時(shí)間, IP,下線時(shí)間等信息記錄入數(shù)據(jù)庫(kù) 第 9 頁 共 28 頁 邏輯 圖 注 冊(cè)登 錄注 冊(cè) 回 應(yīng)在 線 情 況C L I E N T S E R V E R用 戶 信息 管 理密 碼 修 改信 息 修 改取 得 好 友列 表修 改 回 應(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ù)信息的載體,與客戶端關(guān)系并不復(fù)雜,這里需 第 10 頁 共 28 頁 要重點(diǎn) 考慮客戶端之間的關(guān)系。用戶與用戶之間的關(guān)系是較為特殊的遞歸關(guān)系,即描述發(fā)生在兩個(gè)相同實(shí)體上的關(guān)系。 ER 圖如下: 圖 3 ER 圖 詳細(xì)列表 數(shù)據(jù)庫(kù) 包含兩個(gè)表,分別為 記錄 用戶信息的 TCP_Userinfo 和記錄用戶好友信息的 TCP_Friendinfo。詳細(xì)設(shè)計(jì)見下面兩表: 表 1 用戶信息表 TCP_UserInfo TCP_Userinfo 列(屬性)名 類型 主鍵 寬度 是否允許為空 備注 UserID numeric Y 9 NOT NULL 自增長(zhǎng) UserAccount nchar N 20 NOT NULL 用戶帳號(hào) UserNickname nchar N 20 NOT NULL 用戶昵稱,可重復(fù) UserEmail nchar N 20 NOT NULL 用戶 EMAIL JoinDate nchar N 35 NOT NULL 注冊(cè)日期 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 自增長(zhǎng) 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 客戶端 賬號(hào) 昵稱 Email ID 密碼 好友分組 狀態(tài) 客戶端 賬號(hào) 昵稱 Email ID 密碼 好友分組 IP 第 11 頁 共 28 頁 4 系統(tǒng) 實(shí)現(xiàn) 使用 XML定義的即 時(shí)通信協(xié)議 信息結(jié)構(gòu) amp。 這兩個(gè) C類定義了包括服務(wù)器信息,狀態(tài)信息,注冊(cè)信息,登錄信息,聊天信息或者請(qǐng)求文件傳輸信息的函數(shù),服務(wù)器和客戶端通過將它們實(shí)例化和序列化再轉(zhuǎn)換成流在網(wǎng)絡(luò)上進(jìn)行傳輸。 主要代碼如下: [Serializable] public class UMessage { public UMessage(){ } private string _nickname。 private string _password。 private string _accounts。 private string _。 private int _info。//表示注冊(cè)或者 登錄 信息,客戶端信息 0為注冊(cè), 1為 登錄 ;服務(wù)器返回信息 0為用戶已存在, 1為注冊(cè)成功 ,2為服務(wù)器未知錯(cuò)誤, 3為 CLIENT在線檢查, 10為 登錄失敗, 11為 登錄 成功 private Friend[] _friend。 private int _fn。 private string _fg。 public string Nickname { get { return _nickname。 } set { _nickname = value。 } } public string Password { get { return _password。 } set { _password = value。 } } public string Accounts { get { return _accounts。 } set { _accounts = value。 } } public string Email { get { return _。 } set { _ = value。 } } public int Info { get { return _info。 } 第 12 頁 共 28 頁 set { _info = value。 } } public Friend[] Fri { get { return _friend。 } set { _friend = value。 } } public int Fn { get { return _fn。 } set { _fn = value。 } } publ
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1