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

正文內(nèi)容

畢業(yè)設(shè)計(jì)_基于web的文字聊天傳輸模塊的設(shè)計(jì)(編輯修改稿)

2025-01-06 20:42 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 應(yīng)用廣泛的數(shù)據(jù)庫管理系統(tǒng),具有許多顯著的優(yōu)點(diǎn):易用性、適合分布式組織的可伸縮性、用于決 策支持的數(shù)據(jù)倉庫功能、與許多其他服務(wù)器軟件緊密關(guān)聯(lián)的集成性、良好的性價(jià)比等。性能、可伸縮性及可靠性是基本要求,而進(jìn)入市場(chǎng)時(shí)間也非常關(guān)鍵。除這些核心企業(yè)品質(zhì)外, SQL Server 2021 還為您的數(shù)據(jù)管理與分析帶來了靈活性,允許單第 6 頁 共 24 頁 位在快速變化的環(huán)境中從容響應(yīng),從而獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。從數(shù)據(jù)管理和分析角度看,將原始數(shù)據(jù)轉(zhuǎn)化為商業(yè)智能和充分利用 Web 帶來的機(jī)會(huì)非常重要。作為一個(gè)完備的數(shù)據(jù)庫和數(shù)據(jù)分析包, SQL Server 2021 為快速開發(fā)新一代企業(yè)級(jí)商業(yè)應(yīng)用程序、為企業(yè)贏得核心競(jìng)爭(zhēng)優(yōu)勢(shì)打開了勝利之門。作為重要的基 準(zhǔn)測(cè)試可伸縮性和速度獎(jiǎng)的記錄保持者, SQL Server 2021 是一個(gè)具備完全 Web 支持的數(shù)據(jù)庫產(chǎn)品,提供了對(duì)可擴(kuò)展標(biāo)記語言 (XML)的核心支持以及在 Inter 上和防火墻外進(jìn)行查詢的能力。 4 多功能聊天軟件的設(shè)計(jì)方案 聊天系統(tǒng)流程的分析與設(shè)計(jì) 此聊天軟件是采用 C/S 結(jié)構(gòu),其系統(tǒng)流程圖如圖 1 所示。 圖 1 系統(tǒng)流程圖 使用這個(gè)聊天軟件的用戶必須先進(jìn)行注冊(cè),在登錄窗體用戶單擊注冊(cè)按鈕,激活注冊(cè)窗體。填寫相關(guān)的注冊(cè)信息,提交給服務(wù)器。服務(wù)器將注冊(cè)信息提交給數(shù)據(jù)庫,并由服務(wù)器按注冊(cè)順序生成一個(gè) 用戶 ID 號(hào)返回給注冊(cè)用戶,這樣注冊(cè)就完成了。然后用戶用注冊(cè)成功的 ID 號(hào)和注冊(cè)時(shí)的密碼進(jìn)行登錄。用戶在登錄窗口填寫用戶 ID 和用戶密碼,由客戶端將登錄信息提交給服務(wù)器,服務(wù)器根據(jù)數(shù)據(jù)庫中存儲(chǔ)的用戶信息與客戶端提交的登錄信息進(jìn)行比較,比較一致后,則返回一個(gè)登錄成功地確認(rèn)信息給客戶端,當(dāng)客戶端收到這個(gè)確認(rèn)信息時(shí),則激活本聊天軟件的客戶端主窗體。這時(shí)你要與好友進(jìn)行聊天,則必須添加好友,比如用第 7 頁 共 24 頁 戶 2 要添加用戶 N 為好友,用戶 2 首先向用戶 N 發(fā)出添加好友請(qǐng)求信息,用戶N 接受到用戶 2 的信息,并通過驗(yàn)證發(fā)送確認(rèn)反饋信息給用戶 2,并 且向服務(wù)器提交好友添加確認(rèn)信息,這時(shí)服務(wù)器就會(huì)更新相應(yīng)用戶的好友列表中的信息。好友添加完成后,用戶之間就可以進(jìn)行彼此之間的通信,如文字聊天、視頻聊天、語音聊天、文件傳輸?shù)取? 以上如圖 1 為多功能聊天軟件系統(tǒng)的總體流程圖,其中包括了登錄模塊、注冊(cè)模塊、添加好友模塊、服務(wù)器模塊、數(shù)據(jù)庫模塊等。在這個(gè)多功能聊天軟件系統(tǒng)開發(fā)設(shè)計(jì)與實(shí)現(xiàn)中,作者主要負(fù)責(zé)服務(wù)器模塊、數(shù)據(jù)庫模塊、添加好友模塊、文字聊天與文件傳輸功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。下面就對(duì)數(shù)據(jù)庫模塊與添加好友模塊的流程和服務(wù)器模塊進(jìn)行了分析。 數(shù)據(jù)庫模塊的分析與設(shè) 計(jì) 該聊天系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)的目的是保存用戶信息,為用戶之間的通信提供相關(guān)的數(shù)據(jù)服務(wù),比如在用戶登錄時(shí),在登錄模塊中輸入的相關(guān)信息(用戶 ID、密碼),就要和數(shù)據(jù)庫中已有的相關(guān)信息進(jìn)行比較,如果相同就表明登錄成功,如果不一致則要重新登錄。其設(shè)計(jì)思路是:首先建立一個(gè)用戶信息總表,這張表包括每個(gè)人的詳細(xì)信息,如用戶名、用戶 ID、用戶頭像編號(hào)等,是在用戶注冊(cè)時(shí),將信息寫入該用戶信息總表內(nèi);然后當(dāng)一個(gè)用戶注冊(cè)成功后,服務(wù)器就會(huì)自動(dòng)生成一個(gè)該用戶的好友表,該表中存放的是該用戶添加的好友信息,在登錄成功后的客戶端界面的好友 信息就來源于此好友表,這樣兩個(gè)在線的好友之間就可以通信了。圖 2 所示,為此聊天系統(tǒng)的數(shù)據(jù)庫總體設(shè)計(jì)結(jié)構(gòu)圖。 圖 2 數(shù)據(jù)庫結(jié)構(gòu)圖 由于聊天系統(tǒng)的作用是提供用戶之間通信,也就是說它的實(shí)體就是用戶,所以數(shù)據(jù)庫表的關(guān)系就為用戶表與用戶表之間的關(guān)系。圖 3 為此聊天工具的數(shù)據(jù)庫的 ER 圖,它體現(xiàn)了用戶 1 表(用戶 1ID,用戶 1 姓名,用戶 1 頭像 ID 等),其中“用戶 1ID”為主鍵;用戶 2 表(用戶 2ID,用戶 2 姓名,用戶 2 頭像 ID 等),其中“用戶 2ID”為主鍵。他們之間的關(guān)系是 1:1 關(guān)系,也就是說用戶 1 的好友表只能添加一個(gè)用 戶 2 為好友,用戶 2 的好友表只存在一個(gè)用戶 1 的 ID 號(hào)。用第 8 頁 共 24 頁 戶 1 可以添加 N 個(gè)用戶為好友,但這些好友的 ID 號(hào)信息在用戶 1 的好友表中是唯一的。 圖 3 ER 圖 添加好友模塊的分析與設(shè)計(jì) 用戶 1 通過服務(wù)器查詢數(shù)據(jù)庫中已有的好友資料,并向所要添加的好友發(fā)送添加請(qǐng)求,用戶 2 接收到用戶 1 的請(qǐng)求,經(jīng)過驗(yàn)證將消息發(fā)送給用戶 1,用戶 1接收到同意添加消息后,添加用戶 2 位好友,并將用戶 2 的信息存入到用戶 1 的好友表中,同時(shí)用戶 2 也將用戶 1 的信息存入用戶 2 的好友表中,并把相關(guān)信息提交給服務(wù)器,讓服務(wù)器對(duì)數(shù)據(jù)庫進(jìn)行發(fā)更新。圖 4 為添加好友系統(tǒng)流程。 圖 4 添加好友系統(tǒng) 第 9 頁 共 24 頁 服務(wù)器模塊的分析與設(shè)計(jì) 該服務(wù)器的作用是對(duì)數(shù)據(jù)進(jìn)行處理,整個(gè)聊天系統(tǒng)依靠服務(wù)器對(duì)數(shù)據(jù)的處理來運(yùn)行,比如登錄功能、注冊(cè)功能、添加好友功能等都是利用服務(wù)器對(duì)數(shù)據(jù)的處理來實(shí)現(xiàn)的,如圖 5 所示,為服務(wù)器運(yùn)行時(shí)的狀況。 圖 5 服務(wù)器運(yùn)行圖 本設(shè)計(jì)主要完成的是文字聊天、文件傳輸模塊,以及添加好友、服務(wù)器模塊和特殊功能模塊,下面對(duì)其設(shè)計(jì)進(jìn)行實(shí)現(xiàn)進(jìn)行詳細(xì)說明。 5 文字聊天、文件傳輸模塊的設(shè)計(jì)與分析 文字聊天模塊的分析 文字聊天是聊天工具最早的信息傳遞方式, 用戶通過打字,將信息傳遞給好友。至今為止,文字聊天在網(wǎng)絡(luò)聊天中是應(yīng)用最為廣泛的聊天方式。其實(shí)現(xiàn)原理是:通信雙方通過 Socket 套結(jié)字進(jìn)行文字信息的傳輸。用戶雙方通過 Socket 套結(jié)字建立連接,并將文字信息以數(shù)據(jù)流的形式進(jìn)行發(fā)送。如圖 6 所示,為文字信息流程圖。 圖 6 文字聊天流程 文字聊天模塊功能具體實(shí)現(xiàn) 文字聊天模塊功能是聊天軟件誕生以來,最早實(shí)現(xiàn)信息傳遞的功能模塊。 首先雙擊客戶端應(yīng)用程序,讓其程序運(yùn)行。經(jīng)過登錄驗(yàn)證后,程序開辟一個(gè)新的線第 10 頁 共 24 頁 程 udpThread 來完成 udp 的監(jiān)聽功能,并通過調(diào)用 UdpReceiveMsg()函數(shù)來實(shí)現(xiàn)對(duì) udp 數(shù)據(jù)包的接收功能。在由 switch 語句塊根據(jù)控制字符選擇相應(yīng)的功能函數(shù)實(shí)現(xiàn)相應(yīng)的功能。關(guān)鍵代碼如下: 文件 udpThread = new Thread(new ThreadStart(UdpReceiveMsg)); () ……………………… private void UdpReceiveMsg() { …………………… (LocalPoint)。 count = (read)。 …………………… switch (ctrl) { case MSG: //接收信息 (gostr)。 break。 case REQ: //接收好友添加請(qǐng)求 (gostr)。 break。 case AFF: //好友添加反饋信息 (gostr)。 break。 …………………… } } 用戶雙擊所要發(fā)送信息的好友頭像,這時(shí)就會(huì)出現(xiàn)一個(gè)與好友對(duì)話的窗體,在對(duì)話框的輸 入信息區(qū)域,將其要給對(duì)方所發(fā)送的信息輸入到該信息框內(nèi),然后點(diǎn)擊發(fā)送按鈕,就會(huì)觸發(fā)一個(gè) sender 事件,從而調(diào)用 b_send_Click(object sender, e) 事件處理函數(shù)。該函數(shù)先對(duì)用戶輸入數(shù)據(jù)進(jìn)行判斷,如果輸入的傳輸數(shù)據(jù)大于一定的值( 1024Byte),則顯示發(fā)送信息過長(zhǎng)的提示信息,如果輸入的字符數(shù)據(jù)正常,則調(diào)用 (Bsendinfo, remoteEP)方法將控制符 MSG連接上用戶自身 ID 及用戶輸入的文字信息發(fā)送給 好友。關(guān)鍵代第 11 頁 共 24 頁 碼如下: 文件 private void b_send_Click(object sender, e) { …………………… IPEndPoint remoteEP = new IPEndPoint(remoteIP ,2021)。 if(=1024) { (發(fā)送消息過長(zhǎng),請(qǐng)適當(dāng)刪減后再試 )。 } else { …………………… (Bsendinfo, remoteEP )。 ()。 (record)。 //將焦點(diǎn)置于最新消息顯示之處 ()。 =null。 } } 當(dāng)好友的客戶端通過 UdpReceiveMsg()的接收函數(shù)接收到了數(shù)據(jù)時(shí),先通過控制符判斷是否是 ”MSG”,如果是,則說明是好友發(fā)送的普通信息。再調(diào)用SelectUser(string str) 用戶選擇函數(shù),根據(jù)字符串中的用戶 ID 號(hào)找到發(fā)送消息的用戶 ID。然后將聊天信息交給該好友的 DialogChat 窗體的 MSG 屬性,這時(shí)就會(huì)觸發(fā)一個(gè) sender 事件,表示收到該好友的信息,從而,就能將信息顯示在相應(yīng)好友的聊天對(duì)話框中了。關(guān)鍵代碼如下: 文件 private void SelectUser(string str) { …………………… for (int i = 0。 i 。 i++) { if (uctrlid == ucARR[i].UserId) 第 12 頁 共 24 頁 { ucARR[i].Msg = msg。 } } } 文件 private void Msg_RecEvent(object sender, MyEventArgs e) { (new textBox(TextBoxRec))。 } private void TextBoxRec() { …………………… switch (msg ) { …………………… default: …………………… (record)。 //將焦點(diǎn)置于最新消息顯示之 處 ()。 break。 } } 文件傳輸模塊的分析 人們?cè)诨ヂ?lián)網(wǎng)上聊天時(shí),需要傳遞一些如圖片、文件、資料等東西,這時(shí)聊天工具已有的文字聊天已經(jīng)不能滿足人們的這一需求,所以為方便用戶的使用,聊天工具給用戶提供了文件傳輸模塊,可以讓用戶在文字聊天的同時(shí),給對(duì)方發(fā)送一些圖片、文件等信息。在功能上是聊天工具更為完善。其實(shí)現(xiàn)原理是:首先將外儲(chǔ)中的文件以文件流的形式提取到緩存中,然后通信雙方通過 Socket 套結(jié)字建立連接,并將緩存中存放的文件流進(jìn)行發(fā)送。用戶 1 向用戶 2 發(fā)送文件時(shí),先發(fā)送請(qǐng)求信息給用戶 2,用戶 2 接收到用戶 1 的請(qǐng)求信息后,對(duì)用戶 1 發(fā)送回應(yīng)信息,如果用戶 2 同意接收文件請(qǐng)求,則開始文件傳輸,如果用戶 2 不同意接收文件請(qǐng)求,則停止傳輸。其流程結(jié)構(gòu)如圖 7 所示。 第 13 頁 共 24 頁 圖 7 文件傳輸流程 文件傳輸模塊功能具體實(shí)現(xiàn) 文件傳輸是隨著互聯(lián)網(wǎng)應(yīng)用技術(shù)的發(fā)展,在聊天軟件中產(chǎn)生的一個(gè)可以相互之間進(jìn)行發(fā)送文件的新功能模塊,它的實(shí)現(xiàn)滿足了現(xiàn)今用戶的需求。 首先發(fā)送方在聊天對(duì)話框中點(diǎn)擊文件傳輸按鈕 bt_file,就會(huì)觸發(fā) bt_file_Click(object sender, EventArgs e) 事件處理函數(shù),向?qū)Ψ桨l(fā)送一個(gè)傳送文件的請(qǐng)求。關(guān)鍵代碼如下: 文件 private void bt_file_Click(object sender, EventArgs e) { OFDialog = new OpenFileDialog()。 ()。 filepath = 。 FileInfo fileinfo = new FileInfo(filepath)。 filesize = 。 string filename = 。 sendinfo = RFS@ + + @ + myip + @ + filesize+@ +filename 。 (Bsendinfo, remoteEP)。 } 當(dāng)接收方接收到控制字符 RFS后,就調(diào)用 FileRequest(string str) 好友請(qǐng)求傳送文件函數(shù),得知是 哪位好友發(fā)送的文件請(qǐng)求。這時(shí)通過 FileRec 屬性來觸發(fā)UserCtrl_FileEvent(object sender, MyEventArgs e ) 事 件處 理 函數(shù) ,通 過FileReceiveForm FRForm = new FileReceiveForm ( ) 語句,將文件接收窗體實(shí)例化,用 () 將窗體顯示出來,該文件接收窗口有查看資料、接收、拒絕三個(gè)按鈕。如果用戶同意接收文件請(qǐng)求,單擊接收按鈕,就構(gòu)造字符串sendinfo = RSQ@ACC@ + myid 回應(yīng)發(fā)送端,并開辟了新的文件接收線程第 14 頁 共 24 頁 Thread fileRec = new Thread(new ThreadStart(FileReceive)),等待發(fā)送方發(fā)送文件。如果選擇拒絕接收文件,則構(gòu)造字符串 sendinfo = RSQ@REJ回應(yīng)發(fā)送方,以結(jié)束文件傳送過程。關(guān)鍵代碼如下: 文件 string sendinfo = RSQ@ACC@ + myid。 (Bsendinfo, remoteEP)。 string sendinfo = RSQ@REJ。 (Bsendinfo, remoteEP)。 發(fā)送端收到接收端的回應(yīng),判斷接收端
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1