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

正文內(nèi)容

基于vb的文件自動(dòng)更新系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-24 19:07 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 器端會(huì)發(fā)送最新的版本號(hào)給客戶端,客戶端接收到服務(wù)器端發(fā)送的版本號(hào)之后,在本地比對(duì)版本,檢測(cè)此時(shí)是否要升級(jí)客戶端。不要更新,則斷開(kāi)連接,此時(shí)選擇更新,客戶端發(fā)送更新請(qǐng)求到服務(wù)器端,服務(wù)器端就發(fā)送需要更行的文件列表到客戶端,接下來(lái)服務(wù)器端就通過(guò)客戶端發(fā)送的更新文件名,在服務(wù)器端查找,然后發(fā)送給客戶端??蛻舳艘恢苯邮芊?wù)器端發(fā)送的文件,客戶端文件接受完畢之后,發(fā)送一個(gè)標(biāo)示符給服務(wù)器端,然后兩者釋放連接。文件更新時(shí)C/S的信息交換如圖33所示:圖33文件更新時(shí)C/S的信息交換在設(shè)計(jì)軟件時(shí),把文件自動(dòng)更新系統(tǒng)分為三大部分,第一部分是協(xié)議,第二部分是服務(wù)器端,第三部分是客戶端。在協(xié)議中,要先設(shè)計(jì)在客戶端和服務(wù)器端通信時(shí)的簡(jiǎn)明協(xié)議,然后考慮怎樣實(shí)現(xiàn)設(shè)計(jì)的協(xié)議。在設(shè)計(jì)服務(wù)器端時(shí),分為三個(gè)功能:用戶管理,身份認(rèn)證和文件傳輸。用戶管理主要實(shí)現(xiàn)用戶信息的添加、修改、查詢操作,身份認(rèn)證是對(duì)用戶信息的認(rèn)證,為了保證軟件的使用安全,文件傳輸就是在客戶端更行時(shí),服務(wù)器發(fā)送文件的過(guò)程??蛻舳朔譃橛脩舻顷懞臀募鬏?,用戶登陸是在進(jìn)行文件更新之前,對(duì)用戶身份的認(rèn)證,文件傳輸是客戶端在更新時(shí),接收服務(wù)器發(fā)送文件的過(guò)程。文件更新系統(tǒng)功能設(shè)計(jì)如圖34所示:圖34文件更新系統(tǒng)功能設(shè)計(jì) 本章中講述了文件更新系統(tǒng)的大體框架。主要包括:C/S架構(gòu)、面向連接的C/S模型時(shí)序圖、軟件設(shè)計(jì)圖。做完了這些,就可以知道整個(gè)設(shè)計(jì)的大體的結(jié)構(gòu),然后來(lái)逐步完善設(shè)計(jì)。 4 系統(tǒng)的詳細(xì)設(shè)計(jì) TCP簡(jiǎn)明通信協(xié)議的設(shè)計(jì)在開(kāi)始編程之前首先應(yīng)當(dāng)對(duì)客戶端和服務(wù)器之間的通信協(xié)議進(jìn)行定義,以便雙方在通信過(guò)程中可以方便的識(shí)別彼此的通信指令和標(biāo)志::標(biāo)志命令標(biāo)志解釋weizi為了發(fā)送更新列表applyone服務(wù)器申請(qǐng)發(fā)送文件SaveEnd文件傳送完畢ID傳輸用戶名信息的標(biāo)志NoThanks客戶端拒絕更新Stop斷開(kāi)連接標(biāo)志 Access數(shù)據(jù)庫(kù)的設(shè)計(jì) 根據(jù)需要,要建立Access數(shù)據(jù)庫(kù)的相關(guān)信息,以便能操作數(shù)據(jù)庫(kù)中的信息,先建立一個(gè)保存用戶名和密碼的數(shù)據(jù)庫(kù)。用數(shù)據(jù)庫(kù),首先要建立表,然后再定義相應(yīng)的字段。我們根據(jù)需要,建立一張用戶名和密碼的表,表名為ID,首先用設(shè)計(jì)器創(chuàng)造列表創(chuàng)建表。設(shè)計(jì)器創(chuàng)造列表如圖41所示:圖41設(shè)計(jì)器創(chuàng)造列表在字段中填寫username,password,數(shù)據(jù)類型用的是文本。用戶名和密碼設(shè)計(jì)如圖42所示: 圖42用戶名和密碼設(shè)計(jì)在字段中寫入具體的用戶名和密碼,用來(lái)在VB中驗(yàn)證使用者的身份。具體用戶名和密碼的設(shè)計(jì)如圖43所示: 圖43具體用戶名和密碼的設(shè)計(jì)保存所有的操作,表名為ID的表就已經(jīng)建立完畢。數(shù)據(jù)庫(kù)創(chuàng)建完成后,要在VB中調(diào)用數(shù)據(jù)庫(kù)中的內(nèi)容,所以要先連接數(shù)據(jù)庫(kù)。在VB中,可以通過(guò)控件連接數(shù)據(jù)庫(kù),也可以通過(guò)代碼實(shí)現(xiàn)連接。由于實(shí)際需要,這里通過(guò)代碼連接數(shù)據(jù)庫(kù),測(cè)試數(shù)據(jù)庫(kù)是否連接上。,新建一個(gè)標(biāo)準(zhǔn)exe工程,在程序之前要首先定義用戶類型,單擊“工程”→“引用”,勾選“Microsoft ActiveX Data Object ”,這時(shí)就定義完畢,在窗體加載的時(shí)候檢測(cè)數(shù)據(jù)庫(kù)是否連接,代碼如下所示:Dim n As Dim my_recordset As Dim connect_string As String Dim statestring As String Set n=New Set my_recordset=New 39。連接Access數(shù)據(jù)庫(kù) connect_string=DSN=Access_db。UID=。PSW= connect_string Select Case Case adStateClose statestring=adStateClosed Case adStateOpen statestring=adStateOpen End Select 39。顯示連接的狀態(tài) MsgBox 連接成功!,statestring 39。對(duì)wzdz表進(jìn)行查詢操作 Select * from wzdz,n 本段連接數(shù)據(jù)庫(kù)的代碼是寫在窗體的Form_Load()子過(guò)程中的,對(duì)數(shù)據(jù)庫(kù)的連接工作是在程序一開(kāi)始即窗體的加載過(guò)程中進(jìn)行的。在Form_Load()中,首先定義了一個(gè)Connection對(duì)象n和一個(gè)RecordSet對(duì)象my_recordset,以及兩個(gè)字符串類型的變量connect_string和statestring,接下來(lái)的兩個(gè)Set語(yǔ)句是為了生成一個(gè)Connection對(duì)象n和一個(gè)RecordSet對(duì)象my_recordset。然后是連接Access數(shù)據(jù)庫(kù),先把連接字符串“DSN=Access_db。UID=。PSW=賦給字符串變量connect_string。連接字符串中的具體各項(xiàng)內(nèi)容是根據(jù)ODBC數(shù)據(jù)源的配置而定的,不同的配置方式和配置內(nèi)容就會(huì)有不同的連接字符串。n的Open事件用來(lái)執(zhí)行與數(shù)據(jù)庫(kù)的連接工作。為了驗(yàn)證與數(shù)據(jù)庫(kù)的連接是否正確,這里我們讀取了n的State屬性。State屬性可用用來(lái)說(shuō)明其對(duì)象狀態(tài)是打開(kāi)或關(guān)閉的。在使用了State屬性后,通過(guò)系統(tǒng)函數(shù)MsgBox把與數(shù)據(jù)庫(kù)的連接狀態(tài)顯示給用戶。如果連接狀態(tài)是打開(kāi)的,對(duì)話框標(biāo)題欄的文字是“adStateOpen,數(shù)據(jù)庫(kù)連接成功的提示如圖44所示:圖44數(shù)據(jù)庫(kù)連接成功如果連接狀態(tài)是關(guān)閉,則對(duì)話框標(biāo)題欄顯示“adStateClose”。 Select * from wzdz ,n則示范了如何從數(shù)據(jù)庫(kù)中查詢所需要的數(shù)據(jù)。根據(jù)總體設(shè)計(jì)圖來(lái)看服務(wù)器又分為三個(gè)部分,用戶管理,身份認(rèn)證,文件傳輸。具體結(jié)構(gòu)如圖45所示:圖45服務(wù)器端功能結(jié)構(gòu)圖46服務(wù)器端工作流程圖 服務(wù)器端,在登入系統(tǒng)之前要先驗(yàn)證管理員密碼,登入系統(tǒng)之后,服務(wù)端開(kāi)始偵聽(tīng)端口,看是否有連接的請(qǐng)求,沒(méi)有就繼續(xù)偵聽(tīng),有連接請(qǐng)求,則加載一個(gè)Winsock控件,然后和相應(yīng)的客戶端建立連接,然后在服務(wù)器端驗(yàn)證客戶端發(fā)送過(guò)來(lái)的用戶信息(在服務(wù)器的Access數(shù)據(jù)庫(kù)里面查找匹配項(xiàng)),驗(yàn)證成功后,發(fā)送版本號(hào)給客戶端,在確定客戶端需要更新后,發(fā)送更新列表給服務(wù)器,然后接受客戶端相應(yīng)的文件更行請(qǐng)求進(jìn)行數(shù)據(jù)傳輸,傳輸完成后,釋放連接。這樣服務(wù)器端就完成了任務(wù)。具體流程如圖46所示:(1)服務(wù)器端的界面 1)服務(wù)器初始化圖47服務(wù)器初始化的界面程序初始化時(shí),載入兩個(gè)窗體,其中主窗體是隱藏狀態(tài)。在登陸界面中,成功驗(yàn)證了身份之后,才可以對(duì)數(shù)據(jù)庫(kù)里面的用戶進(jìn)行查詢、修改、刪除。服務(wù)器初始化的界面如圖47所示:2)身份認(rèn)證成功圖48身份認(rèn)證成功的界面圖48身份認(rèn)證成功的界面登入系統(tǒng)后,登陸界面隱藏,服務(wù)器主界面顯示出來(lái)。這里主要保證了管理員的使用安全,在沒(méi)有登陸的時(shí)候,服務(wù)器端程序的主窗體是隱藏的。身份認(rèn)證成功的界面如圖48所示:(2)代碼和代碼分析1)管理員身份認(rèn)證 管理員身份認(rèn)證這個(gè)功能是為了保證軟件使用人員的使用安全,在軟件運(yùn)行之后要驗(yàn)證使用人員的信息,才可以安全登入系統(tǒng),代碼如下sSQL = select password from ID3 where username = 39。 amp。 amp。 39。 sSQL, con, adOpenKeyset, adLockOptimisticpassword = If And ThenMsgBox 用戶不存在!, 16ElseIf Reco(password).Value = password ThenMsgBox 登錄成功!, 64ElseMsgBox 密碼錯(cuò)誤!, 32End IfEnd If 在管理員輸入用戶名,密碼之后在數(shù)據(jù)庫(kù)中查找匹配的字段,查找到以后,就允許登入系統(tǒng),如果沒(méi)有查找到,那就提示密碼錯(cuò)誤或者用戶不存在,繼續(xù)驗(yàn)證管理員信息。2)偵聽(tīng)偵聽(tīng)是軟件剛開(kāi)始的時(shí)候就必須進(jìn)行的,一直貫穿到軟件結(jié)尾。因?yàn)闀?huì)有不同的客戶端在不同的時(shí)候發(fā)出連接的請(qǐng)求,所以,讓一個(gè)控件一直處在偵聽(tīng)狀態(tài),來(lái)應(yīng)答客戶端的請(qǐng)求。偵聽(tīng)是一個(gè)動(dòng)作,僅僅這個(gè)動(dòng)作是完成不了連接的過(guò)程的,同樣要設(shè)置端口,IP地址在網(wǎng)絡(luò)的狀態(tài)中就可以知道,所以不用設(shè)置。下面是具體的代碼: If Then wskServer(0).LocalPort = ‘設(shè)置本地的端口 wskServer(0).Listen ‘控件處于監(jiān)聽(tīng)狀態(tài) 開(kāi)始監(jiān)聽(tīng)端口 : amp。 Else wskServer(0).Close ‘關(guān)閉連接 停止端口監(jiān)聽(tīng). = False 39。傳送按鈕不可用 End If這里用到了一個(gè)復(fù)選框,而用到的是它的兩個(gè)狀態(tài),選中狀態(tài)和不選中狀態(tài),來(lái)決定服務(wù)器軟件的連接工作狀態(tài)。軟件中還加入了一個(gè)時(shí)鐘,它的作用是用來(lái)查看客戶端連接的裝填,如果客戶端正?;虍惓jP(guān)閉了連接,那么時(shí)鐘就會(huì)主動(dòng)關(guān)閉,下面是時(shí)鐘的部分代碼: If wskServer(z).State = sckClosing Then 對(duì)方的連接已關(guān)閉... wskServer(z).Close時(shí)鐘的作用還是很重要的,雖然電腦會(huì)主動(dòng)釋放無(wú)連接的控件,但是需要時(shí)間,如果客戶端的量很大的話,就會(huì)造成資源的浪費(fèi)以及服務(wù)器的擁擠,所以及時(shí)的處理還是非常必要的。3)用戶身份驗(yàn)證以及用戶信息的管理用戶身份認(rèn)證是在進(jìn)行文件更新之前,對(duì)客戶端的用戶信息進(jìn)行驗(yàn)證,同樣是為了保證用戶軟件的使用安全,另外也是為了在服務(wù)器端保留相應(yīng)的數(shù)據(jù),借此可以找出哪些用戶已經(jīng)更新過(guò)文件。代碼如下:sSQL = select password from ID3 where username = 39。 amp。 ID(1)amp。 39。 sSQL, con, adOpenKeyset, adLockOptimisticpassword = ID(2)If And ThenWinsock(z).SendData “IDwrong”ElseIf Reco(password).Value = password ThenWinsock(z).SendData “IDRIGHT”ElseWinsock(z).SendData “IDwrong”用戶管理:就是管理注冊(cè)客戶端的基本信息,確保只對(duì)注冊(cè)用戶提供下載服務(wù)。主要實(shí)現(xiàn)用戶信息的添加、修改、查詢操作, 操作界面如圖49所示:圖49用戶管理界面在此框體中,可以實(shí)現(xiàn)查詢用戶,增加和刪除用戶,修改用戶的密碼等功能,直接對(duì)Access數(shù)據(jù)庫(kù)進(jìn)行操作。下面是實(shí)現(xiàn)操作的程序:Private Sub Command2_Click() 39。修改Dim sSQL As StringDim rs As New sSQL = select * from ID3 sSQL, con, adOpenKeyset, adLockOptimisticrs!username = rs!password = 修改用戶: amp。 amp。 / amp。 Set rs = NothingEnd SubPrivate Sub Command3_Click() 39。刪除Dim sSQL As StringDim rs As New sSQL = Delete * from ID3 where username= 39。 amp。 amp。 39。 sSQL 刪除用戶: amp。 amp。 / amp。 Set rs = NothingEnd SubPrivate Sub Command1_Click() 39。查詢Dim sSQL As StringDim rs As New sSQL = select password from ID3 where username = 39。 amp。 amp。 39。 sSQL, con, adOpenKeyset, adLockOptimisticIf 0 Then39。 rs!password 已找到用戶: amp。 amp。 / amp。 rs!password39。rs!PassWord = ElseMsgBox 此用戶未注冊(cè)!??! 未找到用戶: amp。 amp。 / amp。 00000000End IfSet rs = NothingEnd Sub4)文件傳輸文件傳輸在本軟件中是一個(gè)核心的模塊,對(duì)于文件的傳輸,會(huì)涉及的問(wèn)題更廣泛一些,比如小型文件的傳輸、大型文件的傳輸、各種格式的文件傳輸?shù)鹊取T谄鸪踉O(shè)計(jì)時(shí),直接使用winsock傳輸,簡(jiǎn)單字符串可以實(shí)現(xiàn)收發(fā),但是對(duì)于圖片、音頻和視頻文件無(wú)法實(shí)現(xiàn)。在查閱相關(guān)的資料后采用數(shù)據(jù)分割技術(shù)來(lái)實(shí)現(xiàn)對(duì)大型文件的傳輸。具體實(shí)現(xiàn)思路如下:以5000的數(shù)據(jù)大小為一個(gè)數(shù)據(jù)塊,如果當(dāng)前要傳輸?shù)奈募拈L(zhǎng)度大小在5000以內(nèi),則可直接傳輸;如果大于5000,則以5000為一個(gè)傳輸單位,對(duì)該文件進(jìn)行分割傳輸,同時(shí)不能遺漏所剩余的數(shù)據(jù)。那么接收方以8192個(gè)字節(jié)為單位接收二進(jìn)制的數(shù)據(jù)塊,并存儲(chǔ)數(shù)據(jù),以此來(lái)達(dá)到對(duì)文件的傳輸。在整個(gè)文件傳輸過(guò)程中,該模塊起到了十分重要的作用,無(wú)論是大型文件還是小文件的傳輸均可使用該模塊來(lái)實(shí)現(xiàn)傳輸。 .xml .wma .mp3等等,因?yàn)樵撃K采用的是以二進(jìn)制的模式對(duì)文件數(shù)據(jù)進(jìn)行傳輸?shù)?。下面是文件傳輸(發(fā)送)的程序:ddd = FreeFileOpen send_
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1