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

正文內(nèi)容

畢業(yè)設(shè)計(jì)_即時(shí)通訊系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)-資料下載頁(yè)

2025-08-17 11:57本頁(yè)面

【導(dǎo)讀】層出不窮;服務(wù)提供商也提供了越來(lái)越豐富的通訊服務(wù)功能。即時(shí)通信中最基本的功能就。是通過(guò)計(jì)算機(jī)之間的文本數(shù)據(jù)的互換的形式實(shí)現(xiàn)思想的交流和溝通,它的優(yōu)點(diǎn)是方便快捷,為人們之間創(chuàng)建了一種新型的、廉價(jià)的、快速的、簡(jiǎn)便的溝通方式。模式下的局域網(wǎng)即時(shí)通訊系統(tǒng)的應(yīng)用。本畢業(yè)設(shè)計(jì)就是模擬QQ聊天軟件,開(kāi)發(fā)一個(gè)包括。系統(tǒng)主要采用C/S架構(gòu)、C#編程語(yǔ)言、.NET開(kāi)發(fā)。平臺(tái)、UDP通信協(xié)議以及Socket等技術(shù)來(lái)完成。主要實(shí)現(xiàn)的功能有注冊(cè)、登錄、聊天、發(fā)。送表情以及文件傳輸?shù)裙δ?。?wù)合理分配到客戶機(jī)端和服務(wù)器端,從而降低了系統(tǒng)的通信開(kāi)銷。此系統(tǒng)共分為兩個(gè)模塊:??蛻舳四K和服務(wù)器端模塊。通過(guò)運(yùn)行、測(cè)試與分析,該多功能聊天軟件運(yùn)行穩(wěn)定、可靠,具有一定的實(shí)用價(jià)值。

  

【正文】 } ()。 ClassMsg msg3 = new ClassMsg(8, , new ClassSerializers().SerializeBinary(returnmes).ToArray())。 SendMsgToOne((allm[3]), (allm[4]), msg3)。 注冊(cè)頁(yè)面如圖 42 所示。 用戶注冊(cè)包括填寫(xiě)用戶賬號(hào),密碼, 名字 等,如果用戶填寫(xiě)的信息有誤,如:兩次輸入的密碼不相同,系統(tǒng)將提示注冊(cè)有誤,則需要重新填寫(xiě)信息。 本窗體主要使用了 4 個(gè) Label 控件,分別用于顯示密碼、確認(rèn)密碼以及 名字 ; 2個(gè) Button控件用于 確認(rèn)注冊(cè)與取消, 3 個(gè) TextBox控件用于注冊(cè)時(shí)用戶填寫(xiě)密碼、確認(rèn)密碼以及 名字 等信息。 點(diǎn)擊 “提交 ”按鈕觸發(fā) btnSubmit_Click事件, 客戶端驗(yàn)證注冊(cè)信息正確以后便向服務(wù)器發(fā)送注冊(cè)請(qǐng)求,服務(wù)器驗(yàn)證信息后便在用戶表中插入新用戶數(shù)據(jù),便自動(dòng)生成第四章 詳細(xì)設(shè)計(jì) 17 ID 號(hào),最后將 ID 返回到客戶端,用戶便可根據(jù)此 ID 進(jìn)行登錄聊天系統(tǒng),其中btnSubmit_Click事件 具體代碼如下: 圖 42 用戶注冊(cè)界面 private void btnSubmit_Click(object sender, EventArgs e) { if ( == || == ) { (密碼不能為空! )。 } else if ( != ) { (兩次輸入密碼不一 樣! )。 } else if ( 6 || 6) { (密碼不能少于 五 位! )。 } else { 華南理工大學(xué)廣州學(xué)院本科畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 18 ClassMsg msg = new ClassMsg(3, , new ClassSerializers().SerializeBinary( + / + + / + + / + + / + ()).ToArray())。 sendMsgToServer(msg)。 = 請(qǐng)稍等 。 } } 通過(guò)判斷密碼是否為空 、 兩次密碼是否一致 已經(jīng)密碼是否少于五位 來(lái)驗(yàn)證用戶輸入信息的準(zhǔn)確性,當(dāng)通過(guò)驗(yàn)證后,則調(diào)用 sendMsgToServer 函數(shù) 向服務(wù)器 發(fā)送注冊(cè)請(qǐng)求。最后清空各個(gè)輸入框中字符。根據(jù)服務(wù)器返回的結(jié)果彈出對(duì)應(yīng)的 MessageBox對(duì)話框 ,回復(fù)到登陸窗口。 sendMsgToServer 函數(shù)的實(shí)現(xiàn)方法如下: public void sendMsgToServer(ClassMsg msg) { (, , new ClassSerializers().SerializeBinary(msg).ToArray())。 } 用戶登錄 服務(wù)器獲得客戶端發(fā)送來(lái)的用戶名和密碼,然后查詢數(shù)據(jù)庫(kù)的相應(yīng)的用戶列表,如果該用戶不存在或用戶名與密碼不匹配服務(wù)器將驗(yàn)證失敗的結(jié)果還 回 給客戶端,驗(yàn)證過(guò)程終止。如果驗(yàn)證通過(guò), 則成功登錄系統(tǒng), 登錄 認(rèn)證的流程如 圖 43所示。 圖 43 用戶登錄認(rèn)證流程圖 Server Client 登錄信息加密后發(fā)送 登錄成功 驗(yàn)證 返回好友列表與在線好友信息 成功記錄用戶 IP 信息 離線 發(fā)送離線消息 第四章 詳細(xì)設(shè)計(jì) 19 服務(wù)器端: 服務(wù)器端在收到來(lái)自客戶端的數(shù)據(jù)后解析數(shù)據(jù)包,當(dāng)識(shí)別數(shù)據(jù)模式為登陸 時(shí),則調(diào)用 NewUserLogin函數(shù)處理登錄邏輯。在這個(gè)函數(shù)里面主要將輸入的參數(shù)通過(guò) 對(duì)密碼進(jìn)行 MD5解密再?gòu)淖x取 用戶表中是否存在這樣唯一的一個(gè)用戶名與密碼匹配,最后 將該用戶的好友列表與在線好友列表發(fā)送給客戶端并通知其所有好友該用戶上線,同時(shí)在 listview添加一條在線用戶信息, NewUserLogin關(guān)鍵代碼如下: public void NewUserLogin(ClassMsg msg, Ip, int Port) { ClassUserInfo info = new ClassSerializers().DeSerializeBinary((new ())) as ClassUserInfo。 MD5 md5 = new MD5()。 string userID = (, )。 string word = (, )。 SQLhelp help = new SQLhelp()。 SqlDataReader rs = (select word from userinfo where userID=39。 + userID + 39。)。 if () { ()。 string word2 = (0)。 if (word == word2) { ()。 rs = (select userID,name from userinfo where userID=39。 + userID + 39。)。 if () { ()。 ListViewItem((0).ToString())。 AllUserInfo newuse = new AllUserInfo()。 = userID。 = ()。 = Port。 = (1)。 (newuse)。 華南理工大學(xué)廣州學(xué)院本科畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 20 getlistview(alli)。 ()。 ClassMsg msg2 = new ClassMsg(1, , new ClassSerializers().SerializeBinary(li).ToArray())。 SendMsgToOne(Ip, Port, msg2)。 ClassMsg msg3 = new ClassMsg(2, , new ClassSerializers().SerializeBinary(lionline).ToArray())。 SendMsgToOne(Ip, Port, msg3)。 sendtoallfriend(newuse)。 } else { ClassMsg msg2 = new ClassMsg(12, , new ClassSerializers().SerializeBinary().ToArray())。 SendMsgToOne(Ip, Port, msg2)。 } else { ClassMsg msg2 = new ClassMsg(12, , new ClassSerializers().SerializeBinary().ToArray())。 SendMsgToOne(Ip, Port, msg2)。 } } else { (用戶名不存在! )。 } ()。 ()。 } 用戶輸入正確的賬號(hào)和密碼登錄客戶端,用戶登錄界面如圖 44 所示。 本窗體主要使用了 Label、 Button、 TextBox等控件。 Label 控件的基本設(shè)置: = 用戶名 :。 = 密碼 :。 第四章 詳細(xì)設(shè)計(jì) 21 第一個(gè) TextBox的 Name 屬性設(shè)為 “user”,用于輸入用戶的賬號(hào),第二個(gè) TextBox的 Name 屬性設(shè)為 “word”, 用于輸入用戶的密碼,并將 word 屬性設(shè)置為 “*”,表示輸入密碼時(shí)顯示的字符為 “*”。 Button的 Name 屬性設(shè)為 “btnLogin”, Text 屬性設(shè)置為 “登錄 ”, 點(diǎn)擊 “登錄 ”按鈕觸發(fā) btnLogin_Click 事件。首先驗(yàn)證用戶輸入的帳號(hào)及密碼信息是否完整。如果驗(yàn)證正確, 圖 44 用戶登錄界面 客戶端再通過(guò)調(diào)用 Login函數(shù)封裝登錄請(qǐng)求信息并 用 MD5 加密 發(fā)送到服務(wù)器,最后再根據(jù)服務(wù)器發(fā)送回來(lái)的登錄狀態(tài)決定界面的跳轉(zhuǎn),如 果登錄失敗則清空輸入框要求用戶重新登錄,否則隱藏當(dāng)前窗口進(jìn)入主窗口進(jìn)行處理,系統(tǒng)為窗口設(shè)置了兩個(gè)參數(shù)serverIP 與 serverPORT, 用于記錄服務(wù)器的 IP 與端口, 具體代碼如下: private void Login() { if ( == ) { (用戶名不能為空 !”)。 } else if ( == ) { (密碼不能為空 !)。 } MD5 userMD5 = new MD5()。 華南理工大學(xué)廣州學(xué)院本科畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū) 22 = ()。 = (, )。 = (, )。 (3000)。 ClassMsg msg = new ClassMsg(1, , new ClassSerializers().SerializeBinary(userinfo).ToArray())。 sendMsgToServer(msg)。 = true。 } 若用戶還沒(méi)有賬號(hào)和密碼,則首先需要注冊(cè),點(diǎn)擊 “注冊(cè) ”按鈕,跳轉(zhuǎn)到注冊(cè)窗體,填寫(xiě)好相關(guān)信息,完成注冊(cè),注冊(cè)成功后便可以登錄系統(tǒng)。 用戶聊天 聊天界面如圖 45所示。 圖 45 聊天界面 本窗體主要使用了 開(kāi)源控件 RichTextBoxPlus、 Button控件。 第四章 詳細(xì)設(shè)計(jì) 23 RichTextBoxPlus 運(yùn)行用戶輸入和編輯文本的同時(shí) 支持 GIF 圖片 。點(diǎn)擊 “發(fā)送 ”按鈕觸發(fā) btnSend_Click事件,點(diǎn)擊 “關(guān)閉 ”按鈕則關(guān)閉窗體。 服務(wù)器與客戶端程序通過(guò) TCP 連接進(jìn)行通信,客戶端發(fā)送請(qǐng)求,服務(wù)器端收到請(qǐng)求后解析并處理請(qǐng)求,最后向用戶返回狀態(tài)。具體發(fā)送代碼如下: private void SendMSG(string tmid, string msg) { mes mes = new ()。 = frendID。
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1