![C#網(wǎng)絡(luò)編程---第五章C#網(wǎng)絡(luò)編程方法概述ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/3b2c8ab0-a692-433f-8cec-7881bdccb7a5/3b2c8ab0-a692-433f-8cec-7881bdccb7a51.gif)
![C#網(wǎng)絡(luò)編程---第五章C#網(wǎng)絡(luò)編程方法概述ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/3b2c8ab0-a692-433f-8cec-7881bdccb7a5/3b2c8ab0-a692-433f-8cec-7881bdccb7a52.gif)
![C#網(wǎng)絡(luò)編程---第五章C#網(wǎng)絡(luò)編程方法概述ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/3b2c8ab0-a692-433f-8cec-7881bdccb7a5/3b2c8ab0-a692-433f-8cec-7881bdccb7a53.gif)
![C#網(wǎng)絡(luò)編程---第五章C#網(wǎng)絡(luò)編程方法概述ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/3b2c8ab0-a692-433f-8cec-7881bdccb7a5/3b2c8ab0-a692-433f-8cec-7881bdccb7a54.gif)
![C#網(wǎng)絡(luò)編程---第五章C#網(wǎng)絡(luò)編程方法概述ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/3b2c8ab0-a692-433f-8cec-7881bdccb7a5/3b2c8ab0-a692-433f-8cec-7881bdccb7a55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 1C#C#網(wǎng)絡(luò)編程技術(shù)教程網(wǎng)絡(luò)編程技術(shù)教程第五章 C#網(wǎng)絡(luò)編程方法概述 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 2 2學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)了解了解TCP/IPTCP/IP結(jié)構(gòu)及其基本概念。結(jié)構(gòu)及其基本概念。掌握掌握.NET.NET網(wǎng)絡(luò)編程基礎(chǔ)知識。網(wǎng)絡(luò)編程基礎(chǔ)知識。掌握套接字編程的基本原理。掌握套接字編程的基本原理。掌握掌握C#C#中的多線程編程方法。中的多線程編程方法。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 3 3本章內(nèi)容本章內(nèi)容5.1 TCP/IP5.1 TCP/IP概述概述 5.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.3 5.3 套接
2、字編程套接字編程 5.4 5.4 多線程編程多線程編程 5.5 5.5 基于多線程的編程實例基于多線程的編程實例 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 4 45.1 TCP/IP5.1 TCP/IP概述概述 1OSI參考模型 在計算機網(wǎng)絡(luò)產(chǎn)生之初,每個計算機廠商都有一套自己的網(wǎng)絡(luò)體系結(jié)構(gòu)的概念,它們之間互不兼容。為此,國際標(biāo)準(zhǔn)化組織(ISO)在1979年成立了一個分委員會來專門研究一種用于開放系統(tǒng)互連的體系結(jié)構(gòu)(Open Systems Interconnection,OSI)。其中“開放”這個詞表示:只要遵循OSI標(biāo)準(zhǔn),一個系統(tǒng)可以和位于世界上任何地方的、也遵循OSI標(biāo)準(zhǔn)
3、的其他任何系統(tǒng)進行連接。這個分委員會提出了開放系統(tǒng)互連,即OSI參考模型,它定義了連接不同類型計算機的標(biāo)準(zhǔn)框架。 OSI參考模型將計算機網(wǎng)絡(luò)通信定義為一個七層框架模型,如圖5.1所示。這七層分別是物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。圖5.1 OSI參考模型5.1.1 OSI參考模型與TCP/IP模型第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 5 55.1 TCP/IP5.1 TCP/IP概述概述 各層的主要功能及其相應(yīng)的數(shù)據(jù)單位如下:(1)物理層(Physical Layer) 要傳遞信息就要利用一些物理媒體,如雙絞線、同軸電纜等,但具體的物理媒體并不在O
4、SI的七層之內(nèi),有人把物理媒體當(dāng)作第0層,物理層的任務(wù)就是為它的上一層提供一個物理連接,以及它們的機械、電氣、功能和過程特性。如規(guī)定使用電纜和接頭的類型,傳送信號的電壓等。在這一層,數(shù)據(jù)還沒有被組織,僅作為原始的位流或電氣電壓處理,單位是比特。(2)數(shù)據(jù)鏈路層(Data Link Layer) 數(shù)據(jù)鏈路層負(fù)責(zé)在兩個相鄰結(jié)點間的線路上,無差錯地傳送以幀為單位的數(shù)據(jù)。每一幀包括一定數(shù)量的數(shù)據(jù)和一些必要的控制信息。和物理層相似,數(shù)據(jù)鏈路層負(fù)責(zé)建立、維持和釋放數(shù)據(jù)鏈路的連接。在傳送數(shù)據(jù)時,如果接收點檢測到所傳數(shù)據(jù)中有差錯,就要通知發(fā)送方重發(fā)這一幀。(3)網(wǎng)絡(luò)層(Network Layer) 在計算機網(wǎng)
5、絡(luò)中進行通信的兩個計算機之間可能會經(jīng)過很多個數(shù)據(jù)鏈路,也可能還要經(jīng)過很多通信子網(wǎng)。網(wǎng)絡(luò)層的任務(wù)就是選擇合適的網(wǎng)間路由和交換結(jié)點,以確保數(shù)據(jù)及時傳送。網(wǎng)絡(luò)層將數(shù)據(jù)鏈路層提供的幀組成數(shù)據(jù)包,包中封裝有網(wǎng)絡(luò)層包頭,其中含有邏輯地址信息(源站點和目的站點地址的網(wǎng)絡(luò)地址)。5.1.1 OSI參考模型與TCP/IP模型第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 6 65.1 TCP/IP5.1 TCP/IP概述概述 (4)傳輸層(Transport Layer) 傳輸層的任務(wù)是根據(jù)通信子網(wǎng)的特性來最佳地利用網(wǎng)絡(luò)資源,并以可靠和經(jīng)濟的方式,為兩個端系統(tǒng)(也就是源站和目的站)的會話層之間,提供建
6、立、維護和取消傳輸連接的功能,并負(fù)責(zé)可靠地傳輸數(shù)據(jù)。在這一層,信息的傳送單位是報文。(5)會話層(Session Layer) 會話層也稱為會晤層或?qū)υ拰樱跁拰蛹耙陨系母邔哟沃?,?shù)據(jù)傳送的單位不再另外命名,都統(tǒng)稱為報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內(nèi)的建立和維護應(yīng)用之間通信的機制。如服務(wù)器驗證用戶登錄便是由會話層完成的。(6)表示層(Presentation Layer) 表示層主要解決用戶信息的語法表示問題。它將欲交換的數(shù)據(jù)從適合于某一用戶的抽象語法,轉(zhuǎn)換為適合于OSI系統(tǒng)內(nèi)部使用的傳送語法。即提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù)。數(shù)據(jù)的壓縮和解壓縮,加密和解密等工作
7、都由表示層負(fù)責(zé)。5.1.1 OSI參考模型與TCP/IP模型第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 7 75.1 TCP/IP5.1 TCP/IP概述概述 (7)應(yīng)用層(Application Layer) 應(yīng)用層確定進程之間通信的性質(zhì)以滿足用戶需要以及提供網(wǎng)絡(luò)與用戶應(yīng)用軟件之間的接口服務(wù)。 當(dāng)然,OSI參考模型只是一個框架,它的每一層并不執(zhí)行某種功能。在這個OSI七層模型中,每一層都為其上一層提供服務(wù),并為其上一層提供一個訪問接口或界面。不同主機之間的相同層次稱為對等層。如主機A中的表示層和主機B中的表示層互為對等層,主機A中的會話層和主機B中的會話層互為對等層等。對等層之
8、間互相通信需要遵守通信協(xié)議,主要通過軟件來實現(xiàn)。每一種具體的協(xié)議一般都定義了OSI模型中的各個層次具體實現(xiàn)的技術(shù)要求,主機正是利用這些協(xié)議來接收和發(fā)送數(shù)據(jù)的。 5.1.1 OSI參考模型與TCP/IP模型第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 8 85.1 TCP/IP5.1 TCP/IP概述概述 2TCP/IP模型 OSI參考模型的提出是為了解決不同廠商、不同結(jié)構(gòu)的網(wǎng)絡(luò)產(chǎn)品之間互連時遇到的不兼容性問題。但是該模型的復(fù)雜性阻礙了其在計算機網(wǎng)絡(luò)領(lǐng)域的實際應(yīng)用。與此相反,由技術(shù)人員自己開發(fā)的傳輸控制協(xié)議/網(wǎng)際協(xié)議(Transfer Control Protocol/Interne
9、t Protocol,TCP/IP)協(xié)議棧模型都獲得了更為廣泛的應(yīng)用,成為因特網(wǎng)的基礎(chǔ)。實際上,TCP/IP協(xié)議也是目前因特網(wǎng)范圍內(nèi)運行的唯一一種協(xié)議。TCP/IP模型和OSI參考模型的對比示意圖,如圖5.2所示。 TCP/IP模型是美國國防部高級研究計劃局計算機網(wǎng)(Advanced Research Projects Agency Network,ARPANET)和其后繼因特網(wǎng)使用的參考模型。ARPANET是由美國國防部(U.SDepartment of Defense,DoD)贊助的研究網(wǎng)絡(luò)。最初,它只連接了美國境內(nèi)的四所大學(xué)。但在隨后的幾年中,它通過租用的電話線連接了數(shù)百所大學(xué)和政府部門
10、。最終ARPANET發(fā)展成為全球規(guī)模最大的互連網(wǎng)絡(luò)因特網(wǎng)。 5.1.1 OSI參考模型與TCP/IP模型第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 9 95.1 TCP/IP5.1 TCP/IP概述概述 從名字上看,TCP/IP包括兩個協(xié)議,即傳輸控制協(xié)議(Transfer Control Protocol,TCP)和網(wǎng)際協(xié)議(Internet Protocol,IP),但實際上TCP/IP是一系列協(xié)議的代名詞,它包括上百個各種功能的協(xié)議,如:地址解析協(xié)議(ARP)、Internet控制消息協(xié)議(ICMP)、文件傳輸協(xié)議等,而TCP協(xié)議和IP協(xié)議只是保證數(shù)據(jù)完整傳輸?shù)膬蓚€重要協(xié)議
11、。通常講TCP/IP,但實際上指的是因特網(wǎng)協(xié)議系列,而不僅僅是TCP和IP兩個協(xié)議,所以也常稱為TCP/IP協(xié)議族。該協(xié)議族分為四個層次:鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。其各層所包含的主要協(xié)議如圖5.3所示,具體各層所負(fù)責(zé)的功能如下。5.1.1 OSI參考模型與TCP/IP模型 圖5.2 OSI參考模型與TCP/IP模型對比 圖5.3 TCP/IP協(xié)議族第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 10105.1 TCP/IP5.1 TCP/IP概述概述 (1)鏈路層 鏈路層是TCP/IP協(xié)議族的最低層,有時也被稱作數(shù)據(jù)鏈路層或網(wǎng)絡(luò)接口層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動程序和計算機中
12、對應(yīng)的網(wǎng)絡(luò)接口卡,它們一起處理與電纜(或其他任何傳輸媒體)的物理接口。該層負(fù)責(zé)接收IP數(shù)據(jù)報并通過網(wǎng)絡(luò)發(fā)送到網(wǎng)絡(luò)傳輸媒體上,或者從網(wǎng)絡(luò)上接收物理幀,抽出IP數(shù)據(jù)報交給IP層。實際上,TCP/IP模型并沒有真正描述這一層的實現(xiàn),只是要求能夠提供給其上層(網(wǎng)絡(luò)層)一個訪問接口,以便在其上傳遞IP分組。由于這一層次未被定義,所以其具體的實現(xiàn)方法也隨著網(wǎng)絡(luò)類型的不同而不同。(2)網(wǎng)絡(luò)層 網(wǎng)絡(luò)層是整個TCP/IP協(xié)議棧的核心,有時也被稱為互聯(lián)網(wǎng)層或IP層。該層的主要功能是把分組發(fā)往目標(biāo)網(wǎng)絡(luò)或主機。同時,為了盡快發(fā)送分組,可能需要沿不同的路徑同時進行分組傳遞。因此,分組到達的順序和發(fā)送的順序可能不同,這就
13、需要上層對分組進行排序。網(wǎng)絡(luò)層除了完成上述功能外,還完成將不同類型的網(wǎng)絡(luò)(異構(gòu)網(wǎng))進行互連的功能。除此之外,網(wǎng)絡(luò)層還需要完成擁塞控制的功能。 在TCP/IP協(xié)議族中,網(wǎng)絡(luò)層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(因特網(wǎng)控制報文協(xié)議)和IGMP協(xié)議(因特網(wǎng)組管理協(xié)議)。5.1.1 OSI參考模型與TCP/IP模型 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 11115.1 TCP/IP5.1 TCP/IP概述概述 (3)傳輸層 傳輸層主要為兩臺主機上的應(yīng)用程序提供端到端的數(shù)據(jù)通信,它分為兩個協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)。TCP提供有質(zhì)量保證的端到端的數(shù)
14、據(jù)傳輸。若傳輸層使用TCP協(xié)議,則該層負(fù)責(zé)數(shù)據(jù)的分組、質(zhì)量控制和超時重發(fā)等,對于應(yīng)用層來說,就可以忽略這些工作。UDP則只負(fù)責(zé)簡單地把數(shù)據(jù)報從一端發(fā)送到另一端。若傳輸層使用UDP協(xié)議,則數(shù)據(jù)是否到達、是否按時到達、是否損壞都必須由應(yīng)用層來控制。這兩種協(xié)議各有用途,前者可用于面向連接的應(yīng)用,后者則在及時性服務(wù)中有著重要的用途,如網(wǎng)絡(luò)多媒體通信等。(4)應(yīng)用層 應(yīng)用層負(fù)責(zé)處理實際的應(yīng)用程序細(xì)節(jié),主要包括超文本傳輸協(xié)議(HTTP)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、文件傳輸協(xié)議(FTP)、簡單郵件傳輸協(xié)議(SMTP)、域名系統(tǒng)(DNS)、遠程登錄協(xié)議(Telnet)等。其中,有些應(yīng)用層協(xié)議是基于TCP來
15、實現(xiàn)的,例如FTP、HTTP等,有些則是基于UDP來實現(xiàn)的,如SNMP等。5.1.1 OSI參考模型與TCP/IP模型 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 12125.1 TCP/IP5.1 TCP/IP概述概述 3TCP/IP工作原理 由上述OSI參考模型可知,在因特網(wǎng)上源主機的協(xié)議層與目的主機的同層通過下層提供的服務(wù)實現(xiàn)對話。TCP/IP協(xié)議族模型也是按照這一原則來工作的。它們之間的對話實際上是在源主機上從上到下傳遞然后穿越網(wǎng)絡(luò)到達目的主機后再從下到上到達相應(yīng)層。 下面以圖5.4中的客戶機A(信源)和服務(wù)器B(信宿)之間采用應(yīng)用層協(xié)議HTTP協(xié)議提交數(shù)據(jù)請求為例,說明
16、TCP/IP的工作原理。5.1.1 OSI參考模型與TCP/IP模型 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 13135.1 TCP/IP5.1 TCP/IP概述概述 圖5.4中的邏輯傳輸線路表明了數(shù)據(jù)傳輸?shù)姆较?,以及信源和信宿,實際傳輸線路則表明了請求數(shù)據(jù)的真實傳輸鏈路。請求數(shù)據(jù)從信源傳輸?shù)侥康男潘薜倪^程可描述如下:(1)在信源上,利用應(yīng)用層協(xié)議(HTTP)將需傳輸?shù)恼埱髷?shù)據(jù)流傳送給信源上的傳輸層(TCP)。(2)信源上的傳輸層將應(yīng)用層的請求數(shù)據(jù)流截成若干分組,并加上TCP首部形成TCP段,送交信源上的網(wǎng)絡(luò)層(IP)。(3)信源的網(wǎng)絡(luò)層給TCP段加上包括源、目的主機IP地址
17、的IP首部,生成一個IP數(shù)據(jù)報,并將IP數(shù)據(jù)報送交信源的鏈路層。(4)信源的鏈路層在其MAC幀的數(shù)據(jù)部分裝上IP數(shù)據(jù)報,再加上源、目的主機的MAC地址和MAC幀頭,并根據(jù)其目的MAC地址,將MAC幀發(fā)往信宿或中間路由器,例如路由器R。(5)路由器是一個具有多個接口的網(wǎng)絡(luò)互連設(shè)備,可以把數(shù)據(jù)從一個網(wǎng)絡(luò)轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)傳輸?shù)铰酚善骱?,路由器將根?jù)數(shù)據(jù)包中的目的地址進行傳輸路徑的選擇,并根據(jù)所選擇的傳輸路徑進行數(shù)據(jù)傳輸。通常,路由器只處理鏈路層和網(wǎng)絡(luò)層的數(shù)據(jù)。在本實例中,路由器接收客戶機A發(fā)送過來的IP數(shù)據(jù)報,并將該數(shù)據(jù)報轉(zhuǎn)發(fā)給服務(wù)器B。5.1.1 OSI參考模型與TCP/IP模型 第第5
18、5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 14145.1 TCP/IP5.1 TCP/IP概述概述 (6)當(dāng)數(shù)據(jù)傳輸?shù)叫潘?,鏈路層將MAC幀的幀頭去掉,并將IP數(shù)據(jù)報送交信宿的網(wǎng)絡(luò)層。(7)信宿的網(wǎng)絡(luò)層檢查IP數(shù)據(jù)報首部,假如首部中校驗和與計算結(jié)果不一致,則丟棄該IP數(shù)據(jù)報;若校驗和與計算結(jié)果一致,則去掉IP首部,將TCP段送交信宿的傳輸層。(8)信宿的傳輸層檢查順序號,判定是否是正確的TCP分組,然后檢查TCP首部數(shù)據(jù)。若正確,則向信源發(fā)確認(rèn)信息;若不正確或丟包,則向信源要求重發(fā)信息。(9)信宿的傳輸層去掉TCP首部,將排好順序的分組組成應(yīng)用數(shù)據(jù)流送給信宿上相應(yīng)的應(yīng)用程序。這樣信宿接
19、收到的來自信源的字節(jié)流,就像是直接接收到來自信源的字節(jié)流一樣。 5.1.1 OSI參考模型與TCP/IP模型 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 15155.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念1IP地址 IP 地址是進行TCP/IP協(xié)議通信的基礎(chǔ),IP地址是對連接在因特網(wǎng)中的設(shè)備進行唯一性標(biāo)識的設(shè)備編碼,與日常生活中寄信時所用的信箱號類似,以便設(shè)備之間能根據(jù)IP地址來識別。在因特網(wǎng)中,根據(jù)TCP/IP協(xié)議規(guī)定,在IPv4中,IP地址由32位二進制數(shù)組成,其地址空間是0232-1。為了便于記憶,將這32位二進制數(shù)分成四段,每段8位
20、,中間用小數(shù)點隔開,將每八位二進制數(shù)轉(zhuǎn)換成一位十進制數(shù),這樣就形成了點分十進制的表示方法。例如:81。一個簡單的IP地址的格式為:IP地址 = 網(wǎng)絡(luò)地址 + 主機地址,包含了網(wǎng)絡(luò)地址和主機地址兩部分重要的信息。由于IPv4定義的有限地址空間將被耗盡,地址空間的不足必將影響因特網(wǎng)的進一步發(fā)展。所以在最新出臺的IPv6中IP地址升至128位。 IP地址共分五類:A類、B類、C類、D類和E類。其中A類、B類和C類為基本類;D類用于多播傳送;E類屬于保留類,暫未使用。它們的格式如下所示,其中“*”代表網(wǎng)絡(luò)號位數(shù)。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 16165
21、.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 A類地址的最高位必須是“0”,其第一個字節(jié)為網(wǎng)絡(luò)地址,后三個字節(jié)為主機地址。因此A類地址可擁有126個網(wǎng)絡(luò)地址數(shù),其中每個網(wǎng)絡(luò)最多可以包含的主機數(shù)目為224-2(主機地址全1和全0都屬于特殊地址),即有16777214臺主機。因此,A類地址適用于超大規(guī)模的網(wǎng)絡(luò)。 B類地址的最高兩位必須是“10”,前兩個字節(jié)為網(wǎng)絡(luò)地址,后兩個字節(jié)為主機地址。B類IP地址中網(wǎng)絡(luò)地址長度為14位,有16384個網(wǎng)絡(luò),其中每個網(wǎng)絡(luò)最多可以包含的主機數(shù)目為2162,即有65534臺主機。因此,B類地址適用于中等規(guī)模的網(wǎng)絡(luò)。 第第5 5章章
22、 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 17175.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 C類地址的最高三位必須是“110”,前三個字節(jié)為網(wǎng)絡(luò)地址,最后一個字節(jié)為主機地址。因此,C類地址的網(wǎng)絡(luò)數(shù)目為221,即有2907152個網(wǎng)絡(luò),其中每個網(wǎng)絡(luò)可以包含的主機數(shù)目為282,即有254臺主機。因此,C類地址適用于小規(guī)模的局域網(wǎng)絡(luò)。 D類地址與前三類地址不同,它是一種特殊的IP地址類,應(yīng)用于多播通信,因此也被稱為多播地址。地址前面有4個引導(dǎo)位“1110”,其余的28位表示多播地址,因此其地址范圍為:55。D類地
23、址只能作為目的地址,不能作為源地址。 E類地址是一般不用的實驗性地址,前面包含4個引導(dǎo)位“1111”,因此其地址范圍為:55。 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 18185.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 除上述幾類地址外,還有幾個特殊的地址。 網(wǎng)絡(luò)地址:IP地址中主機地址為0的地址表示網(wǎng)絡(luò)地址。這類地址不指派給任何主機,它只保留用來定義某個網(wǎng)絡(luò)的地址。例如,某主機的IP地址為8,它是一個B類地址,則該主機所在網(wǎng)絡(luò)的地址為。廣播地址:在A
24、、B、C三類地址中,主機號全為“1”的地址為廣播地址。這類地址用來同時向指定網(wǎng)絡(luò)的所有主機發(fā)送信息。例如,如果某臺主機使用55為目標(biāo)地址發(fā)送數(shù)據(jù)報時,則網(wǎng)絡(luò)地址為的網(wǎng)絡(luò)中的所有主機都能收到該數(shù)據(jù)報。 回送地址:在IP地址中,首字節(jié)數(shù)值為“127”的地址是一個保留地址,稱為回送地址。如:即為一個回送地址。該類地址用于網(wǎng)絡(luò)測試或本機進程間通信。發(fā)送到這種地址的數(shù)據(jù)報不輸出到線路上,而是立即被返回,又當(dāng)作輸入數(shù)據(jù)報在本機內(nèi)部進行處理。例如,常用的“ping”命令,就是發(fā)送一個將回送地址作為目的地址的數(shù)據(jù)報,以測試IP軟件能否接受和處理數(shù)據(jù)
25、報。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 19195.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念2子網(wǎng)與掩碼 如上所述,IP地址最初采用的是網(wǎng)絡(luò)地址和主機地址兩級結(jié)構(gòu),然而在實際組網(wǎng)過程中,常常會出現(xiàn)使用C類地址時,主機編址空間不夠,而使用A類或B類地址時,又會造成大量IP地址浪費的現(xiàn)象。為此,IP地址現(xiàn)在多采用三級結(jié)構(gòu),即IP地址=網(wǎng)絡(luò)地址+子網(wǎng)地址+主機地址。把每個網(wǎng)絡(luò)的主機地址空間根據(jù)需要再進一步劃分成若干個子網(wǎng),則原來兩級地址結(jié)構(gòu)中的主機地址又細(xì)分為子網(wǎng)地址和主機地址,子網(wǎng)地址位數(shù)根據(jù)子網(wǎng)的實際規(guī)模來確定。具體三級結(jié)構(gòu)地址的確定需
26、要借助子網(wǎng)掩碼來實現(xiàn)。 子網(wǎng)掩碼是一個32位地址掩碼,對應(yīng)于網(wǎng)絡(luò)地址和子網(wǎng)地址的地址掩碼位設(shè)置為“1”,而對應(yīng)于主機地址的地址掩碼位設(shè)置為“0”。子網(wǎng)掩碼用于屏蔽IP地址的一部分以區(qū)別網(wǎng)絡(luò)標(biāo)識和主機標(biāo)識,并說明該IP地址是在局域網(wǎng)上,還是在遠程網(wǎng)上。 確定子網(wǎng)掩碼的過程也就是劃分子網(wǎng)的過程,通常劃分步驟如下:(1)確定網(wǎng)絡(luò)地址,劃出網(wǎng)絡(luò)標(biāo)識和主機標(biāo)識。例如:申請到的網(wǎng)絡(luò)號為“202.195.a.b”,該網(wǎng)絡(luò)地址為C類IP地址,網(wǎng)絡(luò)標(biāo)識為“202.195”,主機標(biāo)識為“a.b”。 (2)根據(jù)需求確認(rèn)子網(wǎng)個數(shù)。 在確認(rèn)子網(wǎng)個數(shù)時應(yīng)當(dāng)考慮將來的擴展情況。例如:現(xiàn)在需要12個子網(wǎng),將來可能需要16個子
27、網(wǎng),則至少需要用第三個字節(jié)的前四位來確定子網(wǎng)掩碼,而后四位仍然用于主機地址。所以將前四位都置為“1”,后四位全置為“0”,即第三個字節(jié)為“11110000”。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 20205.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念(3)得出子網(wǎng)掩碼。 對應(yīng)于網(wǎng)絡(luò)地址和子網(wǎng)地址的地址掩碼位設(shè)置為“1”,而對應(yīng)于主機地址的地址掩碼位設(shè)置為“0”。則子網(wǎng)掩碼的二進制形式為:“11111111.11111111.11110000.00000000”,即為 “”。3端口號 按照TCP/IP模型的描述,應(yīng)
28、用層所有的應(yīng)用進程(應(yīng)用程序)都可以通過傳輸層再傳送到IP層,傳輸層從IP層收到數(shù)據(jù)后必須交付給指明的應(yīng)用進程,因此必須給應(yīng)用層的每一個應(yīng)用程序賦予一個非常明確的標(biāo)志。由于在因特網(wǎng)上使用的計算機的操作系統(tǒng)種類很多,不同的系統(tǒng)會使用不同的進程標(biāo)識符,因此無法采用計算機中的進程標(biāo)識符來作為標(biāo)志,必須采用統(tǒng)一的方法對TCP/IP體錄的應(yīng)用進程進行標(biāo)志。為了標(biāo)識通信實體中進行通信的進程,TCP/IP協(xié)議提出了協(xié)議端口(protocol port,簡稱端口)的概念。 端口是一種抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū))。應(yīng)用程序通過系統(tǒng)調(diào)用與某端口綁定(binding)后,傳輸層傳給該端口的數(shù)據(jù)都
29、被相應(yīng)的進程所接收,相應(yīng)進程發(fā)給傳輸層的數(shù)據(jù)也通過該端口輸出。類似于文件描述符,每個端口都擁有一個叫端口號的整數(shù)描述符,用來區(qū)別不同的端口。TCP/IP協(xié)議使用一個16位的整數(shù)來標(biāo)識一個端口,它的范圍是065535。由于TCP協(xié)議和UDP協(xié)議是兩個完全獨立的軟件模塊,因此各自的端口號也相互獨立。如TCP有一個255號端口,UDP也可以有一個255號端口,兩者并不沖突。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 21215.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 端口號的分配通常有以下兩種方法:(1)全局分配 這是一種集中分配方式,由一個公認(rèn)
30、權(quán)威的機構(gòu)根據(jù)用戶需要進行統(tǒng)一分配,并將結(jié)果公布于眾。(2)本地分配 本地分配又稱動態(tài)連接,即進程需要訪問傳輸層服務(wù)時,向本地操作系統(tǒng)提出申請,操作系統(tǒng)返回本地唯一的端口號,進程再通過合適的系統(tǒng)調(diào)用,將自己和端口連接起來。 TCP/IP端口號的分配綜合了以上兩種方式,將端口號分為兩部分,少量的作為保留端口,以全局方式分配給服務(wù)進程。每一個標(biāo)準(zhǔn)服務(wù)器都擁有一個全局公認(rèn)的端口,即使在不同的機器上,其端口號也相同。剩余的為自由端口,以本地方式進行分配。TCP和UDP規(guī)定,小于256的端口才能作為保留端口。具體講,TCP/IP端口號分為如下兩類。(1)服務(wù)器端使用的端口號。 服務(wù)器端的端口號又分為兩類
31、,最重要的一類叫公認(rèn)端口號(well-known port number)或系統(tǒng)端口號,從01023,它們緊密綁定于一些服務(wù)。通常這些端口的通信明確表明了某種服務(wù)的協(xié)議。例如,對于每個TCP/IP實現(xiàn)來說,F(xiàn)TP服務(wù)器的TCP端口號都是21,每個Telnet服務(wù)器的TCP端口號都是23,每個TFTP(簡單文件傳送協(xié)議)服務(wù)器的UDP端口號都是69,HTTP通信的端口號實際上總是80端口等。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 22225.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 另一類叫注冊端口號(Registered Ports),從
32、102449151。它們松散地綁定于一些服務(wù)。也就是說有許多服務(wù)綁定于這些端口,這些端口同樣用于許多其他目的。例如,許多系統(tǒng)處理動態(tài)端口從1024左右開始。使用這類端口號必須在IANA按照規(guī)定的手續(xù)登記,以防重復(fù)。(2)客戶端使用的端口號。 這類端口通常又稱為動態(tài)和/或私有端口(Dynamic and/or Private Ports),從4915265535。理論上,不應(yīng)為服務(wù)分配這些端口。這類端口號是留給客戶進程選擇暫時使用的。當(dāng)服務(wù)器進程收到客戶進程的報文時,就知道了客戶進程所使用的端口號,因而可以把數(shù)據(jù)發(fā)送給客戶進程。通信結(jié)束后,剛才已經(jīng)使用過的客戶端口號就不復(fù)存在。這個端口號就可以供
33、其他客戶進程以后使用。實際上,機器通常從1024開始分配動態(tài)端口。4地址解析 地址解析(Address Resolution)就是將計算機中的協(xié)議地址翻譯成物理地址(或稱MAC地址,即媒體映射地址)。地址解析技術(shù)可分為如下3種。(1)表查詢(Table-Lookup)。該方法適用于廣域網(wǎng),通過建立映射數(shù)組(協(xié)議地址物理地址)的方法解決。當(dāng)需要進行地址解析時,由軟件通過查詢找到物理地址。 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 23235.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念(2)相近形式計算(Closed-Form Computati
34、on)。該方法適用于可以自行配置的網(wǎng)絡(luò),IP地址和物理地址相互對應(yīng)。通常分配給計算機的協(xié)議地址是根據(jù)其物理地址經(jīng)過仔細(xì)挑選的,使得計算機的物理地址可以由它的協(xié)議地址經(jīng)過基本的邏輯和算術(shù)運算計算出來。例如:XXXlXXX2可通過這種算法得到物理地址:物理地址 協(xié)議地址 & 0 xFF。(3)信息交換(Message Exchange)。該方式適用于LAN,是基于分布式的處理方式,即主機發(fā)送一個解析請求,以廣播的形式發(fā)出,并等待網(wǎng)絡(luò)內(nèi)各個主機的響應(yīng)。 TCP/IP協(xié)議包含了地址解析協(xié)議(Address Resolution Protocol,
35、ARP)。ARP標(biāo)準(zhǔn)定義了兩種基本信息類型:請求與響應(yīng)。當(dāng)一臺主機要求轉(zhuǎn)換一個IP地址時,它廣播一個含有該IP地址的ARP請求,如果該請求與一臺機器的IP地址匹配,則該機器發(fā)出一個含有所需物理地址的響應(yīng)。響應(yīng)是直接發(fā)給廣播該請求的機器的。 在使用ARP的計算機上都保留了一個高速緩存,用于存放最近獲得的IP地址到物理地址的綁定,在發(fā)送分組時,計算機先到緩存中尋找所需的綁定,如沒有,則發(fā)出一個ARP請求。接收方在處理ARP分組之前,先更新它們緩存中發(fā)送方的IP地址到物理地址的綁定信息,再進行響應(yīng)或拋棄。第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 24245.1 TCP/IP5.1 T
36、CP/IP概述概述 5.1.2 TCP/IP基本概念5域名系統(tǒng) 在Internet上,既可以使用主機名標(biāo)識一臺主機,也可以使用IP地址來標(biāo)識。但是在TCP/IP中,點分十進制的IP地址記起來總是不如名字那么方便,人們更愿意使用便于記憶的主機名標(biāo)識符,所以,就采用了域名系統(tǒng)(Domain Name System,DNS)來管理名字和IP地址的對應(yīng)關(guān)系。一個系統(tǒng)的全域名由主機名、域名和擴展名三部分組成,各部分間使用“”分隔,例如。在TCP/IP應(yīng)用中,域名系統(tǒng)是一個分布的數(shù)據(jù)庫,由它來提供IP地址和主機名之間的映射信息,可以通過在程序中調(diào)用標(biāo)準(zhǔn)庫函數(shù)來編程實現(xiàn)域名與IP地址之間的相互轉(zhuǎn)換,這一轉(zhuǎn)換
37、過程稱為“域名解析”。通過從域名地址到IP地址的映射,使得在日常的網(wǎng)絡(luò)應(yīng)用中,可以使用域名這種便于記憶的地址表示形式。所有的網(wǎng)絡(luò)應(yīng)用程序理論上都應(yīng)該具有內(nèi)嵌的域名解析機制。 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 25255.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 域名解析的流程由以下幾步構(gòu)成:(1)客戶機提出域名解析請求,并將該請求發(fā)送給本地的域名服務(wù)器。(2)當(dāng)本地的域名服務(wù)器收到請求后,就先查詢本地的緩存,如果有該記錄項,則本地的域名服務(wù)器就直接把查詢的結(jié)果返回。(3)如果本地的緩存中沒有該記錄,則本地域名服務(wù)器就直接把請求發(fā)給根
38、域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個所查詢域(根的子域)的主域名服務(wù)器的地址。(4)本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請求,然后接受請求的服務(wù)器查詢自己的緩存,如果沒有該記錄,則返回相關(guān)的下級域名服務(wù)器的地址。(5)重復(fù)第四步,直到找到正確的記錄。(6)本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時還將結(jié)果返回給客戶機。 第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 26265.1 TCP/IP5.1 TCP/IP概述概述 5.1.2 TCP/IP基本概念 當(dāng)主機通過網(wǎng)絡(luò)向其他設(shè)備傳輸數(shù)據(jù)時,首先要對數(shù)據(jù)進行打包,這一打包的過程就稱為數(shù)據(jù)封裝。在
39、TCP/IP模型中,為了實現(xiàn)通信并交換信息,每一層都有各自的協(xié)議數(shù)據(jù)單元(Protocol Data Units,PDU),通過封裝使每個PDU附加到數(shù)據(jù)上。每個PDU都有其特定的名稱,如:鏈路層數(shù)據(jù)幀,網(wǎng)絡(luò)層數(shù)據(jù)包,傳輸層數(shù)據(jù)段。這種PDU信息只能由接收方設(shè)備中的對等層讀取,在讀取之后,報頭就被剝離,然后把數(shù)據(jù)交給上一層。數(shù)據(jù)的封裝過程如圖5.5所示。解封裝則是數(shù)據(jù)封裝的逆過程,當(dāng)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧中由底向上升,同時去掉各層協(xié)議加上的報文首部。每層協(xié)議都要去檢查報文首部中的協(xié)議標(biāo)識,以確定接收數(shù)據(jù)的上層協(xié)議。這個過程稱為解封裝。第第5 5章章 C#C#網(wǎng)絡(luò)編程
40、方法概述網(wǎng)絡(luò)編程方法概述 27275.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.1 .NET中的網(wǎng)絡(luò)組件 C#和C+的差異之一,就是它本身沒有類庫,C#所使用的類庫是.Net框架中的類庫.Net Framework SDK。因此了解并掌握.Net框架為網(wǎng)絡(luò)編程提供的類庫是學(xué)習(xí)C#網(wǎng)絡(luò)編程的前提。.Net框架為網(wǎng)絡(luò)開發(fā)提供了兩個頂層命名空間:System.Net和System.Web,同時它們又包含多個子命名空間,C#就是通過這些命名空間中封裝的類和方法實現(xiàn)網(wǎng)絡(luò)通信編程、Web應(yīng)用編程以及Web Service編程的。具體命名空間及其所含類的功能概述如表5.1 所示。第第5
41、5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 28285.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.1 .NET中的網(wǎng)絡(luò)組件 命 名 空 間功 能 概 述System.Net為當(dāng)前網(wǎng)絡(luò)上流行的多種協(xié)議提供一個統(tǒng)一、簡單的編程接口。其中WebRequest和WebResponse類形成了“可插入?yún)f(xié)議”的基礎(chǔ),利用這種網(wǎng)絡(luò)服務(wù)的實現(xiàn),可以開發(fā)在使用Internet資源時不必考慮所用協(xié)議具體細(xì)節(jié)的應(yīng)用程序System.Net.Cache定義類型和枚舉,這些類型和枚舉用于為使用WebRequest和HttpWebRequest類獲取的資源定義緩存策略System.Net.Con
42、figuration所含類提供以編程方式訪問和更新System.Net命名空間的配置設(shè)置的功能System.Net.Mail用于將電子郵件發(fā)送到簡單郵件傳輸協(xié)議(SMTP)服務(wù)器進行傳送的類System.Net.Mime包含用于表示多用途Internet郵件交換(MIME)標(biāo)頭的類型。這些類型與System.Net.Mail命名空間中的類型一起使用,用于在使用SmtpClient類發(fā)送電子郵件時指定Content-Type、Content-Disposition和Content-transfer-Encoding標(biāo)頭System.Net.NetworkInformation提供對網(wǎng)絡(luò)流量數(shù)據(jù)、
43、網(wǎng)絡(luò)地址信息和本地計算機的地址更改通知的訪問。該命名空間還包含實現(xiàn)Ping實用工具的類。您可以使用Ping和相關(guān)的類檢查是否可通過網(wǎng)絡(luò)訪問某臺計算機System.Net.Security為網(wǎng)絡(luò)流在主機間的傳輸提供了安全控制System.Net.Sockets為需要嚴(yán)格控制網(wǎng)絡(luò)訪問的開發(fā)人員提供Windows套接字(Winsock)接口的托管實現(xiàn)System.Web包含啟用瀏覽器/服務(wù)器通信的類和接口。這些命名空間類用于管理到客戶端的HTTP輸出(HttpResponse)和讀取HTTP請求(HttpRequest)。附加的類則提供了一些功能,用于服務(wù)器端的實用程序以及進程、cookie管理、文
44、件傳輸、異常信息和輸出緩存控制System.Web.UI包含創(chuàng)建Web窗體頁的類,包括Page類和用于創(chuàng)建Web用戶界面的其他標(biāo)準(zhǔn)類System.Web.UI.HtmlControls包含創(chuàng)建ASP.NET Web服務(wù)器控件的類。當(dāng)添加到Web窗體時,這些控件將呈現(xiàn)瀏覽器特定的HTML和腳本,用以創(chuàng)建與設(shè)備無關(guān)的Web用戶界面System.Web.Mobile包含生成ASP.NET移動Web應(yīng)用程序所需的核心功能,包括身份驗證和錯誤處理System.Web.UI.MobileControls包含一組ASP.NET服務(wù)器控件,這些控件可以針對不同的移動設(shè)備呈現(xiàn)應(yīng)用程序System.Web.Ser
45、vices包含使您能夠生成和使用XML Web services的類,這些服務(wù)是駐留在Web服務(wù)器中的可編程實體,并通過標(biāo)準(zhǔn)Internet協(xié)議公開第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 29295.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.1 .NET中的網(wǎng)絡(luò)組件 類 名功 能 概 述DNS提供簡單域名解析功能DnsPermission控制對網(wǎng)絡(luò)DNS服務(wù)器的訪問EndPoint用于標(biāo)識網(wǎng)絡(luò)地址FileWebRequest為WebRequest類提供了一個文件系統(tǒng)實現(xiàn)FileWebResponse為WebResponse類提供了一個文件系統(tǒng)實現(xiàn)HttpV
46、ersion定義了由HttpWebRequest和HttpWebResponse類支持的HTTP版本號HttpWebRequest為WebRequest類提供了特定于HTTP的實現(xiàn)HttpWebReponse為WebResponse類提供了特定于HTTP的實現(xiàn)IPAddress提供了IP地址IPEndPoint以IP地址和端口號的形式代表一個網(wǎng)絡(luò)終端IPHostEntry為Internet主機地址信息提供了容器類ProtocolViolationException當(dāng)使用網(wǎng)絡(luò)協(xié)議時出現(xiàn)錯誤,則將拋出由該類所代表的異常SocketAddress代表一個套接字地址SocketPermission控制
47、在傳輸?shù)刂飞仙苫蚪邮者B接的權(quán)限SocketPermissionAttribute允許將SocketPermission的安全動作,施用于使用聲明安全性的代碼WebClient為客戶與Internet資源間的數(shù)據(jù)發(fā)送和接收提供了通用方法WebException當(dāng)通過可插入?yún)f(xié)議訪問網(wǎng)絡(luò)時出現(xiàn)錯誤,則將拋出由該類代表的異常WebProxy包含WebRequest類的HTTP代理WebRequest代表一個到URI的請求WebResponse代表來自URI的響應(yīng)第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 30305.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.1 .N
48、ET中的網(wǎng)絡(luò)組件 類 名功 能 概 述LingerOption包含套接字延遲時間的信息,即當(dāng)數(shù)據(jù)仍在發(fā)送時,套接字應(yīng)在關(guān)閉后保持的時間MulticastOption包含了IP多點傳送數(shù)據(jù)包的選項值NetworkStream為網(wǎng)絡(luò)訪問提供了基礎(chǔ)數(shù)據(jù)流Socket實現(xiàn)了Berkeley套接字接口SocketException當(dāng)出現(xiàn)套接字錯誤時,將拋出由該類所代表的異常TCPClient為TCP網(wǎng)絡(luò)服務(wù)提供了客戶連接TCPListener用以監(jiān)聽TCP客戶連接UDPClient用于提供UDP網(wǎng)絡(luò)服務(wù)第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 31315.2 .NET5.2 .NET網(wǎng)絡(luò)
49、編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.1 .NET中的網(wǎng)絡(luò)組件 類 名功 能 概 述HttpApplication定義了ASP.NET應(yīng)用程序中所有應(yīng)用程序?qū)ο蟮耐ㄓ梅椒ā傩院褪录﨟ttpApplicationState允許ASP.NET應(yīng)用程序中的多個會話和請求共享全局信息HttpBrowserCapabilities允許服務(wù)器收集客戶端瀏覽器的性能信息HttpContext封裝了所有關(guān)于HTTP請求的特定信息HttpException提供了生成HTTP異常的手段HttpFileCollection為由用戶上傳的文件提供訪問和組織手段HttpParseException為生成HTTP解析異常提供了
50、手段HttpPostedFile提供了訪問由客戶上傳的文件的方式HttpRequest允許ASP.NET讀取在Web請求中由客戶發(fā)送的HTTP值HttpResponse封裝了來自一個ASP.NET操作的HTTP響應(yīng)信息HttpUtility為處理Web請求時的URL編碼和解碼提供了方法第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 32325.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.2 網(wǎng)絡(luò)編程中的常用類 1IP地址類 與IP地址相關(guān)的類有IPAddress類、IPHostEntry類、IPEndPoint類等。IPAddress類是一個描述IP地址的類,主要用
51、來存儲IP地址。IPAddress類的屬性和方法如下表所示。屬性、方法名說 明Any只讀屬性,提供一個IP地址,標(biāo)識服務(wù)器應(yīng)該監(jiān)聽所有網(wǎng)絡(luò)接口上的客戶活動Broadcast只讀屬性,提供IP廣播地址,等價于55Loopback只讀屬性,提供IP回送地址,等價于None只讀屬性,提供一個IP地址,標(biāo)識不應(yīng)使用網(wǎng)絡(luò)接口Address獲取或設(shè)置一個IP地址AddressFamily指定IP地址的地址族Equals( )比較兩個IP地址GetHashCode( )獲取IP地址哈希值HostToNetworkOrder( )將主機字節(jié)順序值轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)順序值
52、Parse( )將IP地址字符串轉(zhuǎn)換為IP地址實例第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 33335.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.2 網(wǎng)絡(luò)編程中的常用類 IPHostEntry類是為Internet主機地址信息提供容器的類,它將DNS主機名與一個別名數(shù)組和匹配的IP地址數(shù)組相關(guān)。通常IPHostEntry類作為Dns類的輔助類使用。該類有如下幾個屬性。Aliases屬性:獲取或設(shè)置與主機相關(guān)的別名清單。AddressList屬性:獲取或設(shè)置與主機相關(guān)的IP地址。其值為IPAddress類型的數(shù)組,其中包含的IP地址用于解析Aliases屬性中
53、的主機名。HostName屬性:獲取或設(shè)置主機的DNS名。包含服務(wù)器的基礎(chǔ)主機名,如果服務(wù)器的DNS項定義了附加別名,則可通過Aliases屬性使用它們。IPEndPoint類以IP地址和端口號的形式代表一個網(wǎng)絡(luò)終端。該類中包含應(yīng)用程序連接到主機服務(wù)時需要的主機和端口信息,通過組合主機的IP地址和端口號構(gòu)成服務(wù)的一個連接點。IPEndPoint類的屬性和方法如下表所示。屬性、方法名說 明Address獲取或設(shè)置EndPoint的IP地址AddressFamily獲取IP地址族Port獲取或設(shè)置EndPoint的TCP端口號MaxPort用于指定可被賦予Port屬性的最大值MinPort用于指定
54、可被賦予Port屬性的最小值Create( )調(diào)用Creat( )方法,以根據(jù)套接字地址創(chuàng)建EndPointSerialize( )調(diào)用Serialize( )方法,以將EndPoint信息序列化到一個SocketAddress實例中第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 34345.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.2 網(wǎng)絡(luò)編程中的常用類 2域名解析類 Dns類是一個靜態(tài)類,它提供了有關(guān)域名解析的操作。它將從網(wǎng)絡(luò)主機域名系統(tǒng)中獲取IP地址和主機名、WWW域名的對應(yīng)關(guān)系。它返回一個IPHostEntry對象以保存結(jié)果。如果返回值是多個信息,IPHo
55、stEntry將返回主機的多個地址和別名。Dns類的方法如下表所示。屬性、方法名說 明BeginGetHostByName( )開始由主機名獲得IPHostEntry信息,異步操作BeginGetHostEntry( )開始由IP地址或主機名獲得IPHostEntry信息,異步操作BeginResolve( )開始請求域名解析,由WWW名獲得IPHostEntry信息,異步操作EndGetHostByName( )終止對DNS信息的異步請求(與BeginGetHostByName( )對應(yīng))EndGetHostEntry( )終止對DNS信息的異步請求(與BeginGetHostEntry( )對應(yīng))EndResolve( )終止對DNS信息解析的異步請求GetHostByAddress( )根據(jù)指定IP地址創(chuàng)建一個IPHostEntry實例GetHostByName( )根據(jù)主機名獲取一個IPHostEntry實例GetHostEntry( )根據(jù)IP地址或主機名獲取一個IPHostEntry實例GetHostName( )獲取本地計算機的主機名第第5 5章章 C#C#網(wǎng)絡(luò)編程方法概述網(wǎng)絡(luò)編程方法概述 35355.2 .NET5.2 .NET網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ) 5.2.2 網(wǎng)絡(luò)編程中的常用類 DnsPermission類控
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度減肥健身器材銷售與服務(wù)合同
- 2025年度環(huán)境工程資料收集與評估合同范本
- 2025年度新型城鎮(zhèn)化建設(shè)安裝施工總承包合同
- 貴州2025年貴州省自然資源廳事業(yè)單位招聘14人筆試歷年參考題庫附帶答案詳解
- 邯鄲2024年河北邯鄲廣平縣招聘警務(wù)輔助崗位工作人員58人筆試歷年參考題庫附帶答案詳解
- 衡水2025年河北衡水職業(yè)技術(shù)學(xué)院招聘人事代理工作人員25人筆試歷年參考題庫附帶答案詳解
- 綿陽2024年四川省綿陽第一中學(xué)第三批招聘教師3人筆試歷年參考題庫附帶答案詳解
- 滁州安徽滁州天長市水利局機關(guān)綜合服務(wù)中心選調(diào)工作人員筆試歷年參考題庫附帶答案詳解
- 山西省卓越聯(lián)盟2024-2025學(xué)年高三下學(xué)期2月開學(xué)質(zhì)量檢測試題 地理 含答案
- 喹吖啶酮類項目融資計劃書
- YY/T 1792-2021熒光免疫層析分析儀
- GB/T 32691-2016汽車空調(diào)電磁離合器
- 染廠公司簡介(4個范本)
- 鐵路工程概預(yù)算-工程經(jīng)濟管理培訓(xùn)-課件
- 面部激素依賴性皮炎的管理課件
- 智慧環(huán)衛(wèi)項目建設(shè)方案
- 人民醫(yī)院醫(yī)共體財務(wù)管理部工作手冊
- 高三日語一輪復(fù)習(xí)之自謙語句型課件
- YYT 0325-2022 一次性使用無菌導(dǎo)尿管
- 馬克思主義基本原理教案:第一章+教案
- 重走長征路卡通思維導(dǎo)圖
評論
0/150
提交評論