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

正文內(nèi)容

畢業(yè)設計即時通訊系統(tǒng)設計說明書(編輯修改稿)

2024-08-30 05:24 本頁面
 

【文章內(nèi)容簡介】 了服務器的多線程,服務器端有一個進程(或多個進程)在指定的端口等待客戶的連接信息。一時連接成功,就可以按設計的數(shù)據(jù)交換方法和格式進行數(shù)據(jù)傳輸??蛻舳酥辉谛枰臅r候向服務端發(fā)出連接請求。服務器端主窗口如圖41所示。圖41 服務器主窗口本窗體主要使用到了一個listview控件,分別用于顯示已連接用戶的ID、IP地址、名字NAME、端口號Port,2個Button控件。點擊“開始服務”按鈕觸發(fā)Listen _Click事件,執(zhí)行此操作后,“結(jié)束服務”按鈕的“Enabled”屬性變?yōu)椤皌rue”,“開始服務”按鈕的“Enabled”屬性變?yōu)椤癴alse”,既不再啟用這些控件,具體代碼如下:private void Listen_Click(object sender, EventArgs e) { . sockUDP1 Listen(1433)。 = false。 = true。 }其中sockUDP1 Listen(1433)表示調(diào)用sockUDP的tListen開始監(jiān)聽。點擊“Stop”按鈕觸發(fā)Stop _Click事件,執(zhí)行此操作后,“Stop”按鈕的“Enabled”屬性變?yōu)椤癴alse”,既重新開始啟用這些控件,其代碼如下:private void Stop_Click(object sender, EventArgs e) {()。 = true。 = false。 }()表示調(diào)用sockUDP的CloseSock停止監(jiān)聽。登錄客戶端之前要先打開服務器端的“Listener”窗體,點擊“開始服務”按鈕。 數(shù)據(jù)庫連接本系統(tǒng)采用的數(shù)據(jù)庫是SQL Server 2005, 首先要安裝SQL Server 2005。主要操作:安裝SQL Server 2005組件、安裝服務器、填寫本地計算機、新的SQL Server 實例或安裝客服端工具、安裝服務器和客戶端、填寫公司與名稱、接受協(xié)議、設置用戶賬戶、進行身份驗證等。安裝后,建立一個名為Myqq的數(shù)據(jù)庫,保存注冊的用戶信息和用戶之間的關(guān)系。在Visual Studio 2010的應用程序中添加一個名為SqlHelp的類來連接數(shù)據(jù)庫。連接字符串為private static string conn = new SqlConnection(Data Source=.。Initial Catalog=MYqq。Integrated Security=True)。其中使用getconn函數(shù)打開連接,具體代碼如下: public void getconn() { conn = new SqlConnection(Data Source=.。Initial Catalog=MYqq。Integrated Security=True)。 try { ()。 } catch (Exception ee) { (數(shù)據(jù)庫連接錯誤!)。 } }closeconn函數(shù)關(guān)閉連接,具體代碼如下:public void closeconn() { ()。 }getselect函數(shù)為查詢數(shù)據(jù)庫,返回查詢結(jié)果,其中g(shù)etselect具體代碼如下:public SqlDataReader getselect(string sql) {if(conn==null) getconn()。 SqlCommand cmd = new SqlCommand(sql, conn)。 SqlDataReader rs = ()。 return rs。 }Change函數(shù)為添加、刪除或修改數(shù)據(jù)庫,其中Change具體代碼如下:public int change(string sql) { int i=0。 if(conn==null) getconn()。 try{ SqlCommand cmd=new SqlCommand(sql,conn)。 i=()。 } catch(Exception ee) { ()。 } return i。 }客戶端進行注冊、登錄、添加好友等操作都會用到數(shù)據(jù)庫,由服務器端連接數(shù)據(jù)庫獲取數(shù)據(jù)再返回給客戶端。 主要功能模塊介紹 用戶注冊服務器端:調(diào)用up_PRegist向數(shù)據(jù)庫表中添加新用戶,返回用戶狀態(tài)及id。服務器在收到客戶端的數(shù)據(jù)后,對數(shù)據(jù)進行解析并為用戶注冊,并將返回的結(jié)果使用原socket通道發(fā)送給客戶端。關(guān)鍵代碼如下:string returnmes = 。 string regmes = new ClassSerializers().DeSerializeBinary((new ())) as string。 string []allm=(39。/39。)。 SQLhelp help = new SQLhelp()。 ()。 try { int i= (insert into userinfo(word,name) values(39。 + allm[0] + 39。,39。 + allm[2] + 39。))。} catch (Exception ee) { ()。 } try { SqlDataReader rs2 = (select top 1 * from userinfo order by UserID desc)。 if () { ()。 returnmes= (0).ToString()。 } ()。 } catch (Exception ee) { ()。 } ()。 ClassMsg msg3 = new ClassMsg(8, , new ClassSerializers().SerializeBinary(returnmes).ToArray())。 SendMsgToOne((allm[3]), (allm[4]), msg3)。注冊頁面如圖42所示。用戶注冊包括填寫用戶賬號,密碼,名字等,如果用戶填寫的信息有誤,如:兩次輸入的密碼不相同,系統(tǒng)將提示注冊有誤,則需要重新填寫信息。本窗體主要使用了4個Label控件,分別用于顯示密碼、確認密碼以及名字;2個Button控件用于確認注冊與取消,3個TextBox控件用于注冊時用戶填寫密碼、確認密碼以及名字等信息。點擊“提交”按鈕觸發(fā)btnSubmit_Click事件,客戶端驗證注冊信息正確以后便向服務器發(fā)送注冊請求,服務器驗證信息后便在用戶表中插入新用戶數(shù)據(jù),便自動生成ID號,最后將ID返回到客戶端,用戶便可根據(jù)此ID進行登錄聊天系統(tǒng),其中btnSubmit_Click事件具體代碼如下: 圖42 用戶注冊界面private void btnSubmit_Click(object sender, EventArgs e){ if ( == || == ) { (密碼不能為空!)。 } else if ( != ) { (兩次輸入密碼不一樣!)。 } else if ( 6 || 6) { (密碼不能少于五位!)。 } else { ClassMsg msg = new ClassMsg(3, , new ClassSerializers().SerializeBinary( + / + + / + + / + + / + ()).ToArray())。 sendMsgToServer(msg)。 = 請稍等。 } }通過判斷密碼是否為空、兩次密碼是否一致已經(jīng)密碼是否少于五位來驗證用戶輸入信息的準確性,當通過驗證后,則調(diào)用sendMsgToServer函數(shù)向服務器發(fā)送注冊請求。最后清空各個輸入框中字符。根據(jù)服務器返回的結(jié)果彈出對應的MessageBox對話框,回復到登陸窗口。sendMsgToServer函數(shù)的實現(xiàn)方法如下:public void sendMsgToServer(ClassMsg msg) { (, , new ClassSerializers().SerializeBinary(msg).ToArray())。 } 用戶登錄服務器獲得客戶端發(fā)送來的用戶名和密碼,然后查詢數(shù)據(jù)庫的相應的用戶列表,如果該用戶不存在或用戶名與密碼不匹配服務器將驗證失敗的結(jié)果還回給客戶端,驗證過程終止。如果驗證通過,則成功登錄系統(tǒng),登錄認證的流程如圖43所示。ServerClient登錄信息加密后發(fā)送登錄成功驗證返回好友列表與在線好友信息成功記錄用戶IP信息離線發(fā)送離線消息圖43 用戶登錄認證流程圖服務器端:服務器端在收到來自客戶端的數(shù)據(jù)后解析數(shù)據(jù)包,當識別數(shù)據(jù)模式為登陸時,則調(diào)用NewUserLogin函數(shù)處理登錄邏輯。在這個函數(shù)里面主要將輸入的參數(shù)通過對密碼進行MD5解密再從讀取用戶表中是否存在這樣唯一的一個用戶名與密碼匹配,最后將該用戶的好友列表與在線好友列表發(fā)送給客戶端并通知其所有好友該用戶上線,同時在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)
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1