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

正文內(nèi)容

基于net的趨勢(shì)控件的設(shè)計(jì)與實(shí)現(xiàn)電氣工程及其自動(dòng)化專業(yè)畢業(yè)設(shè)計(jì)畢業(yè)論-資料下載頁(yè)

2025-06-03 08:58本頁(yè)面
  

【正文】 服務(wù)。這種網(wǎng)絡(luò)編程的結(jié)構(gòu)被稱作客戶端 /服務(wù)器結(jié)構(gòu),也叫做 Client/Server 結(jié)構(gòu),簡(jiǎn)稱 C/S 結(jié)構(gòu)。 使用 C/S 結(jié)構(gòu)的程序,在開發(fā)時(shí)需要分別開發(fā)客戶端和服務(wù)器端,這種結(jié)構(gòu)的優(yōu)勢(shì)在于由于客戶端是專門開發(fā)的,所以根據(jù)需要實(shí)現(xiàn)各種效果,專業(yè)點(diǎn)說就是表現(xiàn)力豐富,而服務(wù)器端也需要專門進(jìn)行開發(fā)。但是這種結(jié)構(gòu)也存在著很多不足,例如通用性差,幾乎不能通用等,也就是說一種程序的客戶端只能和對(duì)應(yīng)的服務(wù)器端通訊,而不能和其它服務(wù)器端通訊,在實(shí)際維護(hù)時(shí),也需 要維護(hù)專門的客戶端和服務(wù)器端,維護(hù)的壓力比較大。 其實(shí)在運(yùn)行很多程序時(shí),沒有必要使用專用的客戶端,而需要使用通用的客戶端,例如瀏覽器,使用瀏覽器作為客戶端的結(jié)構(gòu)被稱作瀏覽器 /服務(wù)器結(jié)構(gòu),也叫做 Browser/Server 結(jié)構(gòu),簡(jiǎn)稱為 B/S 結(jié)構(gòu)。 使用 B/S 結(jié)構(gòu)的程序,在開發(fā)時(shí)只需要開發(fā)服務(wù)器端即可,這種結(jié)構(gòu)的優(yōu)勢(shì)在于開發(fā)的壓力比較小,不需要維護(hù)客戶端。但是這種結(jié)構(gòu)也存在著很多不足,例如瀏覽器的限制比較大,表現(xiàn)力不強(qiáng),無法進(jìn)行系統(tǒng)級(jí)操作等。 總之 C/S 結(jié)構(gòu)和 B/S 結(jié)構(gòu)是現(xiàn)在網(wǎng)絡(luò)編程中常見的兩種結(jié)構(gòu), B/S 結(jié)構(gòu) 其實(shí)也就是一種特殊的 C/S 結(jié)構(gòu)。 3. 網(wǎng)絡(luò)通訊方式 在現(xiàn)有的網(wǎng)絡(luò)中,網(wǎng)絡(luò)通訊的方式主要有兩種: TCP(傳輸控制協(xié)議 )方式 UDP(用戶數(shù)據(jù)報(bào)協(xié)議 )方式 若以大家使用手機(jī)為例 : 向別人傳遞信息時(shí)有兩種方式:撥打電話和發(fā)送短信。使用撥打電話的方式可以保證將信息傳遞給別人,因?yàn)閯e人接聽電話時(shí)本身就確認(rèn)接收到了該信息。而發(fā)送短信的方式價(jià)格低廉,使用方便,但是接收人有可能接收不到。 在網(wǎng)絡(luò)通訊中, TCP 方式就類似于撥打電話,使用該種方式進(jìn)行網(wǎng)絡(luò)通訊時(shí),需要建立專門的虛擬連接,然后進(jìn)行可靠的數(shù)據(jù)傳輸, 如果數(shù)據(jù)發(fā)送失敗,則客戶端會(huì)自動(dòng)重發(fā)該數(shù)據(jù)。而 UDP 方式就類似于發(fā)送短信,使用這種方式進(jìn)行網(wǎng)絡(luò)通訊時(shí),不需要建立專門的虛擬連接,傳輸也不是很可靠,如果發(fā)送失敗則客戶端無法獲得。 這兩種傳輸方式都是實(shí)際的網(wǎng)絡(luò)編程中進(jìn)行使用,重要的數(shù)據(jù)一般使用 TCP方式進(jìn)行數(shù)據(jù)傳輸,而大量的非核心數(shù)據(jù)則都通過 UDP 方式進(jìn)行傳遞,在一些程序中甚至結(jié)合使用這兩種方式進(jìn)行數(shù)據(jù)的傳遞。 由于 TCP 需要建立專用的虛擬連接以及確認(rèn)傳輸是否正確,所以使用 TCP 方式的速度稍微慢一些,而且傳輸時(shí)產(chǎn)生的數(shù)據(jù)量要比 UDP 稍微大一些。按照前面的介紹, 網(wǎng)絡(luò)編程就是運(yùn)行在不同計(jì)算機(jī)中兩個(gè)程序之間的數(shù)據(jù)交換。在實(shí)際進(jìn)中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 13 頁(yè) 行數(shù)據(jù)交換時(shí),為了讓接收端理解該數(shù)據(jù),計(jì)算機(jī)比較笨,什么都不懂的,那么就需要規(guī)定該數(shù)據(jù)的格式,這個(gè)數(shù)據(jù)的格式就是協(xié)議。那么如何來編寫協(xié)議格式呢?答案是隨意。只要按照這種協(xié)議格式能夠生成唯一的編碼,按照該編碼可以唯一的解析出發(fā)送數(shù)據(jù)的內(nèi)容即可。也正因?yàn)楦鱾€(gè)網(wǎng)絡(luò)程序之間協(xié)議格式的不同,所以才導(dǎo)致了客戶端程序都是專用的結(jié)構(gòu)。 在實(shí)際的網(wǎng)絡(luò)程序編程中,最麻煩的內(nèi)容不是數(shù)據(jù)的發(fā)送和接收,因?yàn)檫@個(gè)功能在幾乎所有的程序語言中都提供了封裝好的 API 進(jìn)行調(diào)用,最麻 煩的內(nèi)容就是協(xié)議的設(shè)計(jì)以及協(xié)議的生產(chǎn)和解析,這個(gè)才是網(wǎng)絡(luò)編程中最核心的內(nèi)容。 4. 基于 TCP 協(xié)議 的設(shè)計(jì) TCP 協(xié)議連接起來比較復(fù)雜 , 需要經(jīng)過 “三次握手 ”等一系列比較復(fù)雜的程序)。如果是設(shè)計(jì)字符界面的程序那就比較簡(jiǎn)單了。首先就是加載套接字庫(kù),然后是創(chuàng)建套接字,這兩步對(duì)于服務(wù)器端和客戶端來說都是一樣的。接下來就有一些不同的地方了。對(duì)于服務(wù)器端的程序來說,必須將套接字與本地 IP 地址綁定。然后就等著接收數(shù)據(jù)吧。采用的函數(shù)是 recvfrom 函數(shù)。當(dāng)然這個(gè)時(shí)候還要設(shè)置一個(gè)用于記錄發(fā)送端地址的變量。類型可以為 SOCKADDR_IN。而對(duì)于客戶端來說主要就是進(jìn)行數(shù)據(jù)傳送。它不需要進(jìn)行套接字的綁定。只需要將服務(wù)器方的地址設(shè)置好,使用 send to 函數(shù),發(fā)送數(shù)據(jù)就可以了。在這兩個(gè)程序的最后都要關(guān)閉套接字,調(diào)用 Close Socket()和 WSA Cleanup()函數(shù)。 如果是圖形界面的程序則比較復(fù)雜一點(diǎn),因?yàn)檫€涉及到一些 MFC 消息響應(yīng),傳遞,獲取句柄的方法?,F(xiàn)在我都還有一些東西沒搞明白。還應(yīng)采用多線程的編程技術(shù),也就模糊了服務(wù)端與客戶端的界限了。 基于 TCP 協(xié)議的服務(wù)器端設(shè)計(jì)方法,它的步驟為 : 1. 創(chuàng)建套接字 (socket) ; 2. 將套接字綁定到一個(gè)本地地址和端口上 (bind); 3. 將套接字設(shè)為監(jiān)聽模式,準(zhǔn)備接收客戶請(qǐng)求 (listen); 4. 等待客戶請(qǐng)求到來,當(dāng)請(qǐng)求到來后接受連接請(qǐng)求,返回一個(gè)新的對(duì)應(yīng)于此次連接請(qǐng)求的套接字 (accept); 5. 用返回的套接字和客戶端進(jìn)行通信 (send/racy), 返回,等待另一客戶請(qǐng)求 ; 6. 關(guān)閉套接字 ; 客戶端的設(shè)計(jì)同樣也是比較的簡(jiǎn)單的基本步驟也可概括為 : 1. 創(chuàng)建套接字 (socket); 2. 向服務(wù)器發(fā)出連接請(qǐng)求 (connect); 3. 和服務(wù)器端進(jìn)行通信 (send/racy); 4. 關(guān)閉套接字 ; 以上就是基于 TCP 協(xié)議的 socket 編程步驟。其核心原代碼也不過幾行 , 不管是 TCP 還是 UDP 他們的原理都是差不多的。 中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 14 頁(yè) 數(shù)據(jù)及應(yīng)用 a. 簡(jiǎn)介 ADO. NET 是一組提供數(shù)據(jù)訪問服務(wù)的類,它提供了對(duì)數(shù)據(jù) 庫(kù)數(shù)據(jù)、 XML 中的數(shù)據(jù)和應(yīng)用程序數(shù)據(jù)的訪問 ; 而且所有的訪問都是按照一個(gè) 相容的,標(biāo)準(zhǔn)化的設(shè)計(jì)模型來執(zhí)行。 ADO 是 Microsoft 現(xiàn)有的、廣泛應(yīng)用的數(shù)據(jù)訪問接口。但是,它卻有一些 自身難以改變的不適應(yīng)于 Web 環(huán)境的缺陷 : Web 環(huán)境要求一定程度的互操作性,因?yàn)椴僮魉婕暗母鱾€(gè)服務(wù)可能運(yùn) 行在不同的軟件和硬件平臺(tái)上。然而,ADO 對(duì)象天生地定位在 Windows 平臺(tái)上。 ADO 基于 COM 的本性使得記錄集很難在一個(gè)分布式、異種平臺(tái)構(gòu)成的環(huán)境中使 用。 ADO 對(duì)象模型中的每一個(gè)地方都體現(xiàn)了以數(shù)據(jù)庫(kù)為中心的思想。 ADO 把 數(shù)據(jù)看成是一組來自數(shù)據(jù)源的記錄,而不是把數(shù)據(jù)看成一些獨(dú)立的信息。在 ADO 中,如果脫離了數(shù)據(jù)提供者用來保存和描述數(shù)據(jù)的結(jié)構(gòu),數(shù)據(jù)將不能獨(dú)立存在。 從 Web 的角度對(duì) ADO 進(jìn)行檢討和改進(jìn)。兩個(gè)功能使得這方面的增 強(qiáng)成為可 能 :脫機(jī)記錄集,以及與生俱來的對(duì) XML的支持。這主要是通過其中 的 Data Set(數(shù)據(jù)集 )對(duì)象來實(shí)現(xiàn)以上兩個(gè)功能。 中的組件 : 有效地從數(shù)據(jù)操作中將數(shù)據(jù)訪問分解為多個(gè)可以單獨(dú)使用或一前 一后使用的不連續(xù)組件。 包含用于連接到數(shù)據(jù)庫(kù)、執(zhí)行命令和檢索結(jié) 果的 .NET 數(shù)據(jù)提供程序,它是一組包括 Connection, Command,Data Reader 和 Data Adapter 對(duì)象在內(nèi)的組件 ; 同時(shí)既可以直接處理?yè)焖鞯降慕Y(jié)果,也可以將 其放入 中的另一核心組件 Data Set 中。 Data Set 是 ADO. NET的斷開式結(jié)構(gòu)的核心組件。相對(duì)于 ADO, Data Set 是 在 中加入的全新對(duì)象,使用該對(duì)象的目的是為了實(shí)現(xiàn)獨(dú)立于任何數(shù)據(jù) 源的數(shù)據(jù)訪問。因此,它可以用于多種不同的數(shù)據(jù)源, Data Set 包含一個(gè)或多 個(gè)的集合,這些 Data Table 對(duì)象中可以包含主鍵、外鍵、約束等信息, Data Table 對(duì)象之間還可以包含關(guān)系信息等。所以,可以將 Data Set 組件看做是一個(gè)脫機(jī) 的、保存在內(nèi)存中的、由多個(gè)數(shù)據(jù)源提供其數(shù)據(jù)的微型關(guān)系數(shù)據(jù)庫(kù)。 結(jié)構(gòu)的另一個(gè)核心 元素是 .NET 數(shù)據(jù)提供程序,其目的是為了實(shí) 現(xiàn)數(shù)據(jù)操作和對(duì)數(shù)據(jù)的快速、只進(jìn)、只讀訪問,為此包含了幾個(gè)對(duì)象 : Connection對(duì)象提供與各種不同類型數(shù)據(jù)源的連接; Command 對(duì)象能夠訪問用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲(chǔ)過程以及發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫(kù)命令,其包含的可選Parameters 集合中可以定義數(shù)據(jù)庫(kù)命令或存儲(chǔ)過程的參數(shù) ; Data Reader 從 數(shù)據(jù)源中提供高性能的數(shù)據(jù)流,以便對(duì)數(shù)據(jù)進(jìn)行快速、只進(jìn)、只讀訪問; 最后, Data Adapter提供連接 Data Set 對(duì)象和數(shù)據(jù)源的橋梁。 Data Adapter 使用 Select Command 對(duì)象在數(shù)據(jù)源中執(zhí)行 SQL 命令,以便將數(shù)據(jù)加載到 Data Set 中,并可以使用 Insert Command, Update Command 或 Delete Command 對(duì)象將 Data Set 中數(shù)據(jù)的更改返中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 15 頁(yè) 回到數(shù)據(jù)源中??梢詾槿魏螖?shù)據(jù)源編寫 .NET 數(shù)據(jù)提 供程序,在 .NET 框架中附帶了兩個(gè) .NET 數(shù)據(jù)提供程序 SQL Server .NET 數(shù) 據(jù)提供程序和 OLE DB .NET 數(shù)據(jù)提供程序。 下 圖 下圖 顯示了 ADO. NET 中各個(gè)組件對(duì)象之間的關(guān)系 。 圖 ( ) 中各個(gè)組件對(duì)象關(guān)系 b. 應(yīng)用 的十個(gè)技巧 1. 避免 DatabaseAgnostic 形式的編程 中的數(shù)據(jù)訪問是強(qiáng)類型的,就是說在任何時(shí)候你都必須了解你正在處理的是什么數(shù)據(jù)源( data source)。相反,在 ADO 中,你可以編寫數(shù)據(jù)訪問代碼(它們充分利用了 OLE DB 提供者的通用模式),并將基本的數(shù)據(jù)源只看做是個(gè)參數(shù)。 ADO 對(duì)象模式提供了唯一的連接和命令對(duì)象,它們隱藏了基本的 DBMS 的特征。一旦你在 Connection 對(duì)象上設(shè)置了 Provider 屬性,那么為 SQL Server 或 Oracle創(chuàng)建一個(gè)命令對(duì)象就需要同樣的代碼。許多開發(fā)人員都通過該功能來使用生產(chǎn)環(huán)境外的 Access 數(shù)據(jù)庫(kù) ,以便很快地測(cè)試或演示應(yīng)用程序。 2. 運(yùn)用字符串來串行化擴(kuò)展的屬性 幾個(gè) 對(duì)象都擁有一個(gè)叫做 Extended Properties 的集合。該屬性就像收集貨物( cargo collection)一樣,可以用來存儲(chǔ)任何類型的用戶信息 。 Data Set、Data Table 和 Data Column 就是可以提供該數(shù)據(jù)成員的類。 通過運(yùn)用Property Collection 類封裝的一個(gè)哈希表來實(shí)現(xiàn)這個(gè) Extended Properties 屬性。你可以用 Add 方法將數(shù)據(jù)插入到集合中。 Add 方法使用了兩個(gè)參數(shù)來保存數(shù)據(jù) ——key和 value。該方法的原形將參數(shù)定義為通用的對(duì)象類型,你可以存儲(chǔ)任何類型的信息。然而,在特殊情況下,你應(yīng)該特別注意那些被保存為擴(kuò)展屬性的對(duì)象的類型。 3. 運(yùn)用具有 BLOB 字段的 Execute Xml Reader 用于 SQL Server 的 .NET 數(shù)據(jù)提供者( data provider)使用了數(shù)據(jù)庫(kù)提供的 XML擴(kuò)展名,并提供了一個(gè)額外的方法( Execute Xml Reader)來執(zhí)行查詢。命令對(duì)象中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì)(論文) 第 16 頁(yè) 上的所有的執(zhí)行者(例如 Execute Reader 和 Execute Scalier)都采用不同的方法來得到結(jié)果集。 Execute Reader 通過一個(gè)托管指針 (managed cursor) (data reader)來返回?cái)?shù)據(jù),而 Execute Scalier 返回結(jié)果集中的第一個(gè)值,把它作為一個(gè)標(biāo)量值。 Execute Xml Reader 執(zhí)行查詢,并返回已經(jīng)綁定到一個(gè) Xml Text Reader 對(duì)象的基于 XML的輸出流。通過這種方式 , 你就不需要做 額外的工作來以 XML 的方式加工數(shù)據(jù)了。要實(shí)現(xiàn)這一點(diǎn),查詢字符串必須返回 XML 數(shù)據(jù)。對(duì) SQL Server 來說,當(dāng)查詢字符串包含一個(gè) FOR XML 子句時(shí),就可以實(shí)現(xiàn)它。 4. 不要設(shè)法緩存一個(gè) Data View Data Set 和 Data Table 對(duì)象是唯一的包含數(shù)據(jù)的 對(duì)象。 Data View 是一個(gè)不能串行化的、輕量級(jí)的類 , 它只代表構(gòu)建在一個(gè)表上的視圖( view)。你可以根據(jù)一個(gè)表達(dá)式或行的狀態(tài)來過濾視圖。許多應(yīng)用程序都需要你管理數(shù)據(jù)視圖并將它們綁定到數(shù)據(jù)控件上,如 Windows 和 Web Data Grid 控件。一個(gè) Data View對(duì)象不能緩存數(shù)據(jù);它只是緩存了與當(dāng)前過濾器相匹配的基本的表中的行的索引。緩存索引的順序與當(dāng)前的排序表達(dá)式一致。 而 緩存 Data View 而不緩存基本的 Data Table 是不行的。 5. 運(yùn)用 Find 來讀取一個(gè)記錄 通過運(yùn)用 Data Table 的 Select 方法來運(yùn)行一個(gè)內(nèi)存中的查詢,或在視圖上設(shè)置一個(gè)過濾器來濾掉與指定標(biāo)準(zhǔn)不匹配的所有的記錄,你就可以讀取一個(gè) Data Table對(duì)象中的一個(gè)特定的行了。你可以通過設(shè)置 Data View 類上的 Row Filter 屬性來設(shè)置一個(gè)過濾器。這兩種方法都運(yùn)用相同的引擎來選擇記錄。它們可以接納一個(gè)表達(dá)式,對(duì)它進(jìn)行解析并求各個(gè)子句的值。 Data Table 的 Select 方法返回一個(gè)帶有所有相匹配的 Data Row 對(duì)象的數(shù)組。 Row Filter 屬性重建 Data Vie
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1