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

正文內(nèi)容

基于vb的即時(shí)通信系統(tǒng)畢業(yè)設(shè)計(jì)-文庫(kù)吧

2025-01-03 16:20 本頁(yè)面


【正文】 要求具有一定專(zhuān)業(yè)水準(zhǔn)的技術(shù)人員去完成。 基于Socket通信的基本應(yīng)用模式在基丁Socket構(gòu)造TCP/IP網(wǎng)絡(luò)應(yīng)用時(shí),通信雙方常常構(gòu)成客戶(hù)端/服務(wù)器的模式,即客戶(hù)向服務(wù)器發(fā)出服務(wù)器請(qǐng)求,服務(wù)器接收到請(qǐng)求后,提供相應(yīng)的服務(wù)。服務(wù)與被服務(wù)都是通過(guò)傳遞各種請(qǐng)求消息、響應(yīng)消息等一問(wèn)一答的方式來(lái)實(shí)現(xiàn)靈活的網(wǎng)絡(luò)應(yīng)用。以有連接方式為例,客戶(hù)端和服務(wù)器在通信過(guò)程中的基本操作和時(shí)序如圖24所示:圖24 基于Socket應(yīng)用的基本時(shí)序圖 在上述基本時(shí)序中,請(qǐng)求服務(wù)和提供服務(wù)的過(guò)程都可以反復(fù)進(jìn)行,直到完成某個(gè)預(yù)定的應(yīng)用功能。這樣,通過(guò)基本消息傳遞,可以建立起靈活多樣的網(wǎng)絡(luò)應(yīng)用。在實(shí)際設(shè)計(jì)的應(yīng)用中,服務(wù)器往往不只服務(wù)于來(lái)自單個(gè)客戶(hù)端的請(qǐng)求。此時(shí),服務(wù)器接收到一個(gè)連接請(qǐng)求,并建立起了連接,接下來(lái)的處理還可以劃分為兩種截然不同的方式:是直接處理該請(qǐng)求并發(fā)送應(yīng)答信息,然后再進(jìn)行下面的工作。在服務(wù)器處理請(qǐng)求的過(guò)程忠,不可能再對(duì)另外的請(qǐng)求進(jìn)行響應(yīng)。只有當(dāng)一個(gè)完整的服務(wù)過(guò)程完成后,程序再循環(huán)回到接收請(qǐng)求的地方,此時(shí)才又可以接收下一個(gè)請(qǐng)求。如此周而復(fù)始。這種方式叫做重復(fù)服務(wù)器,即一次只能處理一個(gè)服務(wù)請(qǐng)求。是每收到一個(gè)服務(wù)請(qǐng)求時(shí),就激活一個(gè)新的進(jìn)程(或線(xiàn)程)來(lái)專(zhuān)門(mén)處理這個(gè)客戶(hù)請(qǐng)求。新建立的進(jìn)程(或線(xiàn)程)從創(chuàng)建它的服務(wù)器繼承了建立好的連接等資源,并使用這個(gè)建立好的連接與客戶(hù)端進(jìn)行通信,為客戶(hù)端提供服務(wù)。而原來(lái)的服務(wù)器就可以立刻又回到等待請(qǐng)求的地方,可以接受下一個(gè)連接請(qǐng)求。新進(jìn)程(或線(xiàn)程)中服務(wù)完成后,關(guān)閉自己與客戶(hù)端的通信鏈路,并自行終止。這種方式叫做并發(fā)式服務(wù)器 ,即可以同時(shí)響應(yīng)多個(gè)客戶(hù)端的清求。[7] 如果應(yīng)用比較簡(jiǎn)單,客戶(hù)端較少,同時(shí)發(fā)生請(qǐng)求的概率很低,或者客戶(hù)端不介意等待服務(wù)的時(shí)間,可以采用重復(fù)服務(wù)器。而如果客戶(hù)端較多,并對(duì)服務(wù)響應(yīng)的要求較高,就應(yīng)當(dāng)采用并發(fā)服務(wù)器,這種方式可以滿(mǎn)足大型和復(fù)雜應(yīng)用的需求。如果使用無(wú)連接的模式,就不存存建立、斷開(kāi)連接等過(guò)程。但是通過(guò)基本信息傳遞實(shí)現(xiàn)提供服務(wù)的道理與有連接的模式是一樣的。 設(shè)計(jì)工具Visual Basic介紹BASIC是Beginner39。s Allpurpose symbolic instruction Code(初學(xué)者通用符號(hào)指令代碼)的縮寫(xiě),是國(guó)際上廣泛使用的一種計(jì)算機(jī)高級(jí)語(yǔ)言。BASIC簡(jiǎn)單、易學(xué),目前仍是計(jì)算機(jī)入門(mén)的主要學(xué)習(xí)語(yǔ)言之一。 BASIC語(yǔ)言的問(wèn)世及發(fā)展 BASIC語(yǔ)言自其問(wèn)世經(jīng)歷了以下四個(gè)階段:第一階段:(1964年~70年代初) 1964年BASIC語(yǔ)言問(wèn)世。 第二階段:(1975年~80年代中) 微機(jī)上固化的BASIC第三階段:(80年代中~90年代初) 結(jié)構(gòu)化BASIC語(yǔ)言。第四階段:(1991年以來(lái)) Visual BASIC   1991年,微軟推出了Visual Basic(簡(jiǎn)稱(chēng)VB)。這在當(dāng)時(shí)引起了很大的轟動(dòng)。許多專(zhuān)家把VB的出現(xiàn)當(dāng)作是軟件開(kāi)發(fā)史上的一個(gè)具有劃時(shí)代意義的事件。其實(shí),以我們現(xiàn)在的目光來(lái)看,VB10的功能實(shí)在是太弱了。但在當(dāng)時(shí),它是第一個(gè)“可視”的編程軟件。這使得程序員欣喜之極,都嘗試在VB的平臺(tái)上進(jìn)行軟件創(chuàng)作。并且從VB3開(kāi)始,微軟將ACCESS的數(shù)據(jù)庫(kù)驅(qū)動(dòng)集成到了VB中,這使得VB的數(shù)據(jù)庫(kù)編程能力大大提高。從VB4開(kāi)始,VB也引入了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想。VB功能強(qiáng)大,學(xué)習(xí)簡(jiǎn)單。而且,VB還引入了“控件”的概念,使得大量已經(jīng)編好的VB程序可以被我們直接拿來(lái)使用,如今。幾個(gè)定義:  在討論Visual Basic時(shí),經(jīng)??梢月?tīng)到這些術(shù)語(yǔ),因此對(duì)這些術(shù)語(yǔ)的基本理解十分有幫助??丶禾峁┏绦蚩梢?jiàn)界面的可重用對(duì)象。控件的示例有文本框、標(biāo)簽和命令按鈕。事件:由用戶(hù)或操作系統(tǒng)引發(fā)的動(dòng)作。事件的示例有擊鍵、單擊鼠標(biāo)、一段時(shí)間的限制,或從端口接收數(shù)據(jù)。方法:嵌入在對(duì)象定義中的程序代碼,它定義對(duì)象怎樣處理信息并響應(yīng)某事件。例如,數(shù)據(jù)庫(kù)對(duì)象有打開(kāi)紀(jì)錄集并從一個(gè)記錄移動(dòng)到另一個(gè)記錄的方法。 對(duì)象:程序的基本元素,它含有定義其特征的屬性,定義其任務(wù)和識(shí)別它可以響應(yīng)的事件的方法??丶痛绑w是Visual Basic中所有對(duì)象的示例。 過(guò)程: 為完成任務(wù)而編寫(xiě)的代碼段。過(guò)程通常用于響應(yīng)特定的事件。 屬性:對(duì)象的特征,如尺寸、位置、顏色或文本。屬性決定對(duì)象的外觀,有時(shí)也決定對(duì)象的行為。屬性也用于為對(duì)象提供數(shù)據(jù)和從對(duì)象取回信息。[8] 本章小結(jié) 本章主要介紹了設(shè)計(jì)過(guò)程中用到的一些相關(guān)的技術(shù)和原理,如TCP/IP和Winsock等。還有軟件的設(shè)計(jì)平臺(tái)的介紹,主要是編程工具VB的歷史背景和相關(guān)的一些主要控件的介紹,為下面的設(shè)計(jì)奠定了一個(gè)良好的理論基礎(chǔ)。第3章 網(wǎng)絡(luò)即時(shí)通信軟件的設(shè)計(jì) 即時(shí)通信系統(tǒng)的需求分析 基本需求 一般即時(shí)消息格式需求 1) 所有實(shí)體必須至少使用一種消息格式; 2) 必須定義發(fā)信者和即時(shí)收件箱的標(biāo)識(shí); 3) 必須包含一個(gè)讓接收者可以回消息的地址; 4) 必須反映當(dāng)前最好的可用性實(shí)踐??煽啃孕枨? 協(xié)議必須存在機(jī)制,保證即時(shí)消息成功投遞或者投遞失敗的時(shí)候,發(fā)信者獲得足夠的信息。 性能需求1) 傳輸必須足夠的迅速;2) 內(nèi)容必須足夠豐富;3) 長(zhǎng)度盡量足夠長(zhǎng)。 協(xié)議需求 協(xié)議是一系列的步驟,它包括雙方或者多方,設(shè)計(jì)它的目的是要完成一項(xiàng)任務(wù)。即時(shí)通訊協(xié)議,參與的雙方或者多方是即時(shí)通訊的實(shí)體。協(xié)議必須是雙方或者多方參與的,一方單獨(dú)完成的就不算協(xié)議。這樣在協(xié)議動(dòng)作的過(guò)程中,雙方必須交換信息,包括控制信息、狀態(tài)信息等等。這些信息的格式必須是協(xié)議參與方同意并且遵循的。好的協(xié)議要求清楚,完整,每一步都必須有明確的定義,并且不會(huì)引起誤解。對(duì)每種可能的情況必須規(guī)定具體的動(dòng)作。 安全需求A發(fā)送即時(shí)消息M給B:1) 如果無(wú)法發(fā)送,A必須接到確認(rèn);2) 協(xié)議必須為B提供方法檢查A發(fā)送了這條信息;3) 協(xié)議不能暴露A的IP地址;4) 協(xié)議必須為A提供方法保證沒(méi)有其他個(gè)體C可以看到內(nèi)容M;5) 協(xié)議必須為A提供方法保證沒(méi)有其他個(gè)體C可以篡改M。 系統(tǒng)需求注冊(cè)需求1)即時(shí)通訊系統(tǒng)擁有多個(gè)賬戶(hù),允許多個(gè)用戶(hù)注冊(cè);2)一個(gè)用戶(hù)可以注冊(cè)多個(gè)帳號(hào);3)注冊(cè)所使用的帳號(hào)類(lèi)型為數(shù)字;4)要防止同一個(gè)用戶(hù)在一段時(shí)間內(nèi)反復(fù)注冊(cè)三個(gè)或者三個(gè)以上的帳號(hào)。通訊需求1)用戶(hù)可以傳輸文本消息;2)用戶(hù)可以傳輸RTF格式消息;3)用戶(hù)可以傳輸文件;4)客戶(hù)端與服務(wù)器端可以傳輸消息。好友管理需求1)用戶(hù)可以查詢(xún)好友;2)用戶(hù)可以添加好友;3)用戶(hù)可以添加多個(gè)人為好友,一個(gè)用戶(hù)可以被多個(gè)人添加為好友;4)用戶(hù)可以刪除好友。 界面設(shè)計(jì)用戶(hù)界面是一個(gè)應(yīng)用程序最重要的部分,對(duì)用戶(hù)而言,界面就是應(yīng)用程序,他們感覺(jué)不到幕后正在執(zhí)行的代碼。不論花多少時(shí)間和精力來(lái)編制和優(yōu)化代碼,應(yīng)用程序的可用性仍然在很大程度上依賴(lài)于界面的好壞 。Visual Basic采用在窗體上拖曳控件的方式為創(chuàng)建用戶(hù)界面提供了非常簡(jiǎn)便的方法,窗體的設(shè)計(jì)和規(guī)劃不僅影響到它本身外觀的可觀賞性,在大多數(shù)時(shí)候,這樣的界面設(shè)計(jì)都是由程序設(shè)計(jì)人員完成,因此了解用戶(hù)界面的設(shè)計(jì)原則,是每個(gè)程序設(shè)計(jì)人員都要做的事情。[9]本軟件包含10個(gè)窗體和5個(gè)模塊,基本上這些窗體的實(shí)現(xiàn)的功能都比較簡(jiǎn)單,所以窗體里也不用多少個(gè)控件,在這里就主要介紹下登錄界面和主界面的設(shè)計(jì)要點(diǎn)。 登錄界面這是用戶(hù)使用此軟件首先看到的一個(gè)界面,所以對(duì)用戶(hù)來(lái)說(shuō)這個(gè)界面的可用性和美觀性直接影響到對(duì)整個(gè)軟件的看法。首先暫且給此軟件命名為MYIM,這樣聽(tīng)起來(lái)比較直觀吧!想要在登錄的窗體標(biāo)題上顯示“MYIM登錄”,只要把窗體屬性的Caption值改成“MYIM登錄”即可。同時(shí)也可以在文字前加上圖標(biāo)(圖中沒(méi)有添加),這樣就顯得有點(diǎn)特色。然后把窗體分成兩部分:操作方法文本說(shuō)明和用戶(hù)信息輸入的控件放置。為了美觀起見(jiàn),在文本說(shuō)明輸入的前面加上一個(gè)圖標(biāo)(如圖31的“”);然后再輸入“歡迎使用MYIM”和使用該軟件的方法。最好把這兩塊文本分成兩個(gè)標(biāo)簽,因?yàn)檫@樣的話(huà)后面程序用到的時(shí)候顯示得就比較清晰明了。另一部分要使用到的控件有標(biāo)簽、文本框、復(fù)選框和按鈕?!坝脩?hù)名”、“密碼”和“服務(wù)器IP”這三組文字使用的是標(biāo)簽控件,因?yàn)檫@三組文字不需要改動(dòng),只是提示用戶(hù)后面文本框內(nèi)需要輸入的相應(yīng)內(nèi)容。和下面的“記住密碼”用的都是復(fù)選框控件,同時(shí)為了方便用戶(hù),把復(fù)選框放在輸入用戶(hù)名后,這樣用戶(hù)就可以及時(shí)地確認(rèn)自己是否為新用戶(hù),減少了輸入的錯(cuò)誤。“記住密碼”也一樣。其他兩個(gè)是按鈕,用戶(hù)輸入好信息后,如果沒(méi)錯(cuò)誤,按繼續(xù)按鈕就可以進(jìn)入主界面;如果不需要登錄,按關(guān)閉就可以退出程序。按此步驟設(shè)計(jì)完成大致的圖如31所示:圖31 MYIM登錄界面 主界面 主界面是程序的核心,各個(gè)功能都是通過(guò)這個(gè)界面來(lái)連接完成的。這個(gè)窗體主要通過(guò)菜單控件來(lái)完成,總共包括三個(gè)菜單項(xiàng):文件、工具和幫助。文件菜單里又包括登錄、修改密碼、修改個(gè)人信息、報(bào)表、個(gè)人狀態(tài)和關(guān)閉。登錄項(xiàng)在用戶(hù)登錄后顯示的是“注銷(xiāo)”;點(diǎn)擊修改密碼就會(huì)彈出修改密碼的窗體;修改個(gè)人信息就會(huì)彈出個(gè)人信息的窗體;報(bào)表的窗體里包括發(fā)送給服務(wù)器錯(cuò)誤、評(píng)論及投訴的報(bào)表;個(gè)人狀態(tài)顯示的是用戶(hù)目前的狀態(tài),分別用幾種顏色來(lái)表示:綠色表示在線(xiàn),紅色表示忙碌,黃色表示離開(kāi),灰色表示隱身或離線(xiàn)。關(guān)閉就是關(guān)閉此軟件。工具菜單里包括發(fā)送消息、用戶(hù)信息、文件傳輸和添加刪除好友。這些都是通過(guò)調(diào)用相關(guān)的窗體來(lái)實(shí)現(xiàn)的。幫助菜單里顯示的是關(guān)于此軟件的一些說(shuō)明。其他的有兩個(gè)快捷的按鈕,分別是用來(lái)發(fā)送和選擇用戶(hù)狀態(tài)的按鈕,因?yàn)橄胍谶@兩個(gè)按鈕上添加圖標(biāo),所以寫(xiě)上了“圖標(biāo)”兩個(gè)字,下圖只是表達(dá)一種效果;顯示登錄的用戶(hù)自己的用戶(hù)名和用戶(hù)目前的狀態(tài)的標(biāo)簽及顯示好友列表的Treeview控件,這個(gè)控件的參數(shù)要在程序里設(shè)置,所以這里沒(méi)有添加相關(guān)的內(nèi)容;還有狀態(tài)欄,用來(lái)顯示各種提示的信息。 根據(jù)這樣的思路,再對(duì)界面進(jìn)行一定的整合和排列后就得到如圖32這樣的效果。圖32 軟件主界面 系統(tǒng)設(shè)計(jì)和功能的實(shí)現(xiàn) 各模塊的邏輯分析及設(shè)計(jì)前面介紹了軟件界面的設(shè)計(jì),但光有界面還是遠(yuǎn)遠(yuǎn)不夠的,這樣不能實(shí)現(xiàn)任何的功能,所以還需要很重要的后臺(tái)支持,這個(gè)后臺(tái)就是程序代碼。下圖給出的是軟件的整體設(shè)計(jì)框架,這個(gè)軟件實(shí)現(xiàn)的功能都可以從圖中看出,下面就先來(lái)對(duì)各個(gè)模塊進(jìn)行分析和代碼編寫(xiě)流程的設(shè)計(jì)。圖33 軟件的整體設(shè)計(jì)框架 用戶(hù)登錄模塊。 擁有合法(如:用戶(hù)名中不能包含空格等)用戶(hù)名的用戶(hù),輸入與上次相同的密碼(如果是新用戶(hù),只要在用戶(hù)名后選擇新用戶(hù)即可。注意:密碼中也不能包含空格?。?,然后輸入對(duì)應(yīng)的服務(wù)器IP地址就可以通過(guò)客戶(hù)端登錄到服務(wù)器,服務(wù)器獲取客戶(hù)端的用戶(hù)名和網(wǎng)絡(luò)環(huán)境數(shù)據(jù),保存在用戶(hù)數(shù)據(jù)表中??蛻?hù)端登錄之后,將從好友數(shù)據(jù)表中讀取好友,從在線(xiàn)用戶(hù)數(shù)據(jù)表中讀取在線(xiàn)用戶(hù)信息,從用戶(hù)基本信息數(shù)據(jù)表讀取好友基本數(shù)據(jù)。[10]下面先給出用戶(hù)登錄的邏輯圖,如圖34所示。圖34 用戶(hù)登錄邏輯過(guò)程根據(jù)圖34的邏輯過(guò)程,我們可以對(duì)用戶(hù)登錄模塊的代碼進(jìn)行編寫(xiě),代碼的編寫(xiě)流程圖如圖35所示(這里默認(rèn)服務(wù)器已經(jīng)開(kāi)啟,并且輸入的服務(wù)器IP地址正確)。圖35 登錄模塊代碼編寫(xiě)流程圖個(gè)人信息修改模塊首先向服務(wù)器發(fā)送修改個(gè)人信息的請(qǐng)求給服務(wù)器,服務(wù)器根據(jù)用戶(hù)名和相應(yīng)的指令查詢(xún)用戶(hù)的個(gè)人信息,然后調(diào)用服務(wù)器中存儲(chǔ)的用戶(hù)信息,顯示在用戶(hù)個(gè)人信息的窗體中,用戶(hù)如果要修改資料,就把用戶(hù)修改的資料保存下來(lái)存到服務(wù)器中,用戶(hù)也可以直接看到自己的信息已經(jīng)被修改了。 個(gè)人信息修改邏輯過(guò)程如圖36所示。 圖36 用戶(hù)信息修改邏輯過(guò)程 密碼修改模塊用戶(hù)首先要記住自己的密碼,這樣也可以防止被他人隨意修改。同時(shí)為了保證用戶(hù)輸入的密碼是否符合用戶(hù)的要求,再輸入一次確認(rèn)密碼就可以保證密碼是用戶(hù)想要修改的結(jié)果,然后保存,同時(shí)向服務(wù)器發(fā)送密碼修改的請(qǐng)求,服務(wù)器就把修改后的密碼保存下來(lái)。密碼修改模塊代碼編寫(xiě)流程圖如圖37所示。圖37 密碼修改模塊代碼編寫(xiě)流程圖 發(fā)送報(bào)表模塊報(bào)表包括三類(lèi):錯(cuò)誤、評(píng)論和投訴。首先拉一個(gè)文本框,還有三個(gè)按鈕,如果要發(fā)送,只需要在文本框中輸入要發(fā)送的內(nèi)容,然后選擇一個(gè)按鈕進(jìn)行發(fā)送,這樣,代碼里只要輸入指令和相應(yīng)的內(nèi)容發(fā)送給服務(wù)器即可,發(fā)送完后清空文本框內(nèi)容,隱藏此窗體。 刪除好友模塊用戶(hù)刪除好友時(shí),用戶(hù)在好友列表中選擇刪除對(duì)象并執(zhí)行刪除操作,系統(tǒng)會(huì)把該好友從好友列表中刪除,然后從好友數(shù)據(jù)表中刪除該用戶(hù)的好友記錄,就完成了好友刪除操作。刪除好友模塊邏輯過(guò)程如圖38所示。圖38 刪除好友模塊邏輯過(guò)程添加好友模塊輸入用戶(hù)名后檢查是否存在此用戶(hù),向服務(wù)器發(fā)送添加好友的指令和好友用戶(hù)名,服務(wù)器把好友添加到用戶(hù)好友數(shù)據(jù)表中,好友顯示在用戶(hù)好友列表里,同時(shí)顯示好友目前狀態(tài)。添加好友模塊邏輯過(guò)程如圖39所示。圖39 添加好友模塊邏輯過(guò)程發(fā)送消息模塊先選擇要發(fā)送的對(duì)象,然后在R
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1