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

正文內(nèi)容

畢業(yè)設(shè)計_即時通訊系統(tǒng)設(shè)計說明書(參考版)

2024-08-30 11:57本頁面
  

【正文】 = frendID。 服務(wù)器與客戶端程序通過 TCP 連接進行通信,客戶端發(fā)送請求,服務(wù)器端收到請求后解析并處理請求,最后向用戶返回狀態(tài)。 第四章 詳細設(shè)計 23 RichTextBoxPlus 運行用戶輸入和編輯文本的同時 支持 GIF 圖片 。 用戶聊天 聊天界面如圖 45所示。 = true。 ClassMsg msg = new ClassMsg(1, , new ClassSerializers().SerializeBinary(userinfo).ToArray())。 = (, )。 華南理工大學廣州學院本科畢業(yè)設(shè)計(論文)說明書 22 = ()。 } else if ( == ) { (密碼不能為空 !)。首先驗證用戶輸入的帳號及密碼信息是否完整。 第四章 詳細設(shè)計 21 第一個 TextBox的 Name 屬性設(shè)為 “user”,用于輸入用戶的賬號,第二個 TextBox的 Name 屬性設(shè)為 “word”, 用于輸入用戶的密碼,并將 word 屬性設(shè)置為 “*”,表示輸入密碼時顯示的字符為 “*”。 Label 控件的基本設(shè)置: = 用戶名 :。 } 用戶輸入正確的賬號和密碼登錄客戶端,用戶登錄界面如圖 44 所示。 } ()。 SendMsgToOne(Ip, Port, msg2)。 SendMsgToOne(Ip, Port, msg2)。 sendtoallfriend(newuse)。 ClassMsg msg3 = new ClassMsg(2, , new ClassSerializers().SerializeBinary(lionline).ToArray())。 ClassMsg msg2 = new ClassMsg(1, , new ClassSerializers().SerializeBinary(li).ToArray())。 華南理工大學廣州學院本科畢業(yè)設(shè)計(論文)說明書 20 getlistview(alli)。 = (1)。 = ()。 AllUserInfo newuse = new AllUserInfo()。 if () { ()。 + userID + 39。 if (word == word2) { ()。 if () { ()。 + userID + 39。 SQLhelp help = new SQLhelp()。 string userID = (, )。在這個函數(shù)里面主要將輸入的參數(shù)通過 對密碼進行 MD5解密再從讀取 用戶表中是否存在這樣唯一的一個用戶名與密碼匹配,最后 將該用戶的好友列表與在線好友列表發(fā)送給客戶端并通知其所有好友該用戶上線,同時在 listview添加一條在線用戶信息, NewUserLogin關(guān)鍵代碼如下: public void NewUserLogin(ClassMsg msg, Ip, int Port) { ClassUserInfo info = new ClassSerializers().DeSerializeBinary((new ())) as ClassUserInfo。如果驗證通過, 則成功登錄系統(tǒng), 登錄 認證的流程如 圖 43所示。 sendMsgToServer 函數(shù)的實現(xiàn)方法如下: public void sendMsgToServer(ClassMsg msg) { (, , new ClassSerializers().SerializeBinary(msg).ToArray())。最后清空各個輸入框中字符。 = 請稍等 。 } else { 華南理工大學廣州學院本科畢業(yè)設(shè)計(論文)說明書 18 ClassMsg msg = new ClassMsg(3, , new ClassSerializers().SerializeBinary( + / + + / + + / + + / + ()).ToArray())。 } else if ( != ) { (兩次輸入密碼不一 樣! )。 本窗體主要使用了 4 個 Label 控件,分別用于顯示密碼、確認密碼以及 名字 ; 2個 Button控件用于 確認注冊與取消, 3 個 TextBox控件用于注冊時用戶填寫密碼、確認密碼以及 名字 等信息。 注冊頁面如圖 42 所示。 ClassMsg msg3 = new ClassMsg(8, , new ClassSerializers().SerializeBinary(returnmes).ToArray())。 } catch (Exception ee) { ()。 returnmes= (0).ToString()。 } try { SqlDataReader rs2 = (select top 1 * from userinfo order by UserID desc)。))。,39。 try { 華南理工大學廣州學院本科畢業(yè)設(shè)計(論文)說明書 16 int i= (insert into userinfo(word,name) values(39。 SQLhelp help = new SQLhelp()。/39。 string regmes = new ClassSerializers().DeSerializeBinary((new ())) as string。 服務(wù)器在收到客戶端的數(shù)據(jù)后,對數(shù)據(jù)進行解析并為用戶注冊,并將返回的結(jié)果使用原socket 通道發(fā)送給客戶端。 } 客戶端進行注冊、登錄、添加好友等操作都會用到數(shù)據(jù)庫,由服務(wù)器端連接數(shù)據(jù)庫獲取數(shù)據(jù)再返回給客戶端 。 } catch(Exception ee) { ()。 try{ SqlCommand cmd=new SqlCommand(sql,conn)。 第四章 詳細設(shè)計 15 } Change 函數(shù)為 添加、刪除或修改數(shù)據(jù)庫,其中 Change 具體代碼如下: public int change(string sql) { int i=0。 SqlDataReader rs = ()。 } getselect 函數(shù) 為 查詢數(shù)據(jù)庫, 返回查詢結(jié)果, 其中 getselect 具體代碼如下: public SqlDataReader getselect(string sql) {if(conn==null) getconn()。 } catch (Exception ee) { (數(shù)據(jù)庫連接錯誤! )。Integrated Security=True)。其中 使用 getconn函數(shù)打開連接,具體代碼如下: public void getconn() { conn = new SqlConnection(Data Source=.。Initial Catalog=MYqq。 在 Visual Studio 2020的應(yīng)用程序中添加一個名為 SqlHelp的類來連接數(shù)據(jù)庫。 主要操作:安裝 SQL Server 2020 組件、安裝服務(wù)器、填寫本地計算機、新的 SQL Server 實例或安裝客服端工具、安裝服務(wù)器和客戶端、填寫公司與名稱、接受協(xié)議、設(shè)置用戶賬戶、進行身份驗證等。 登錄客戶端之前要先打開服務(wù)器端的 “Listener”窗體,點擊 “開始服 務(wù) ”按鈕。 = false。 點擊 “Stop”按鈕觸發(fā) Stop _Click事件,執(zhí)行此操作后, “Stop”按鈕的 “Enabled”屬性變?yōu)?“false”,既重新 開始啟用這些控件, 其代碼如下: private void Stop_Click(object sender, EventArgs e) { ()。 = true。 點擊 “開始服務(wù) ”按鈕觸發(fā) Listen _Click事件,執(zhí)行此操作后, “結(jié)束服務(wù) ”按鈕的“Enabled”屬性變?yōu)?“true”, “開始服務(wù) ”按鈕的 “Enabled”屬性變?yōu)?“false”,既不再啟用這些控件, 具體代碼如下: private void Listen_Click(object sender, EventArgs e) { . sockUDP1 Listen(1433)。 服務(wù)器端主窗口 如圖 41 所示。一時連接成功,就可以按設(shè)計的數(shù)據(jù)交換方法和格式進行數(shù)據(jù)傳輸。 } catch (Exception e) { if (Sock_Error != null) Sock_Error(())。 if (DataArrival != null) { DataArrival(RData, , )。 } 華南理工大學廣州學院本科畢業(yè)設(shè)計(論文)說明書 12 catch(Exception e) { if (Sock_Error!= null) Sock_Error(())。 try { ()。 } catch (Exception e) { if (Sock_Error!= null) Sock_Error(())。 thdUdp = new Thread(new ThreadStart(GetUDPData))。 點擊服務(wù)器端窗體的 “開始服務(wù)” 按鈕,調(diào)用 Listen開 始監(jiān)聽,監(jiān)聽處理過程位于 單獨的線程中, Listen的實現(xiàn)方法如下: public void Listen(int Port) { try { UDP_Server_Port = Port。一旦服務(wù)器發(fā)現(xiàn)一個新的客戶端與之建立了連接,就馬上新建一個線程與客戶端進行通信。數(shù)據(jù)庫表主要存儲用戶信息和好友關(guān)系信息,即時通訊系統(tǒng)連接數(shù)據(jù)庫后便可以讀取數(shù)據(jù)庫中的信息。 本章小結(jié) 本章主要介紹了 SQL Ser
點擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1