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

正文內(nèi)容

c網(wǎng)絡(luò)編程第五章c網(wǎng)絡(luò)編程方法概述(參考版)

2025-05-18 21:06本頁(yè)面
  

【正文】 IPEndPoint sock_iep = (IPEndPoint)。 (Connected: {0},)。 //修改 Socket實(shí)例的屬性 = false。 (ProtocolType: {0},)。 (AddressFamily: {0},)。 IPEndPoint ipep = new IPEndPoint(ipa,8080)。 using 。 using 。 第5章 C網(wǎng)絡(luò)編程方法概述 52 套接字編程 .NET中的 Socket類 using System。 下面用一個(gè)簡(jiǎn)單的實(shí)例來說明創(chuàng)建套接字以及獲取該套接字屬性的使用方法,程序?qū)崿F(xiàn)如代碼實(shí)例 。圖 獲取套接字屬性運(yùn)行結(jié)果 ( 8) Close( ) 禁止套接字上的發(fā)送和接收之后,使用 Close( )方法關(guān)閉套接字連接并釋放所有相關(guān)資源。 ( 7) Shutdown(SocketShutdown how) 當(dāng)客戶端和服務(wù)器端的通信結(jié)束時(shí),必須關(guān)閉相應(yīng)的套接字實(shí)例。在客戶端使用 Connect( )方法實(shí)現(xiàn)綁定, remoteEP參數(shù)為所要連接的服務(wù)器端的 IPEndPoint實(shí)例。 Receive( )有四種重載方法如表 。 Send( )有四種重載方法,如表 。而服務(wù)器剛開始創(chuàng)建的套接字仍然負(fù)責(zé)監(jiān)聽,并在需要時(shí)調(diào)用 Accept( )接受新的連接請(qǐng)求。 ( 3) Accept( ) 在服務(wù)器進(jìn)入監(jiān)聽狀態(tài)時(shí),如有從客戶端發(fā)來的連接請(qǐng)求,服務(wù)器將使用Accept( )方法來接受連接請(qǐng)求。超過這個(gè)數(shù)目的連接都會(huì)被拒絕。 ( 2) Listen(int con_num) 服務(wù)器端的套接字完成了與地址的綁定后,就使用 Listen( )方法監(jiān)聽客戶發(fā)送的連接請(qǐng)求。 第5章 C網(wǎng)絡(luò)編程方法概述 48 套接字編程 .NET中的 Socket類 表 IP套接字定義組合 SocketType值 ProtocolType值 描 述 Stream Tcp 面向連接套接字 Dgram Udp 無連接套接字 Raw Icmp 網(wǎng)際消息控制協(xié)議套接字 Raw Raw 基礎(chǔ)傳輸協(xié)議套接字 表 Socket類的公共屬性 屬 性 名 描 述 AddressFamily 獲取 Socket的地址族 Available 獲取已經(jīng)從網(wǎng)絡(luò)接收且可供讀取的數(shù)據(jù)量 Blocking 獲取或設(shè)置一個(gè)值,該值指示 Socket是否處于阻塞模式 Connected 獲取一個(gè)值,該值指示 Socket是否已連接到遠(yuǎn)程主機(jī) Handle 獲取 Socket的操作系統(tǒng)句柄 LocalEndPoint 獲取本地終結(jié)點(diǎn) EndPoint RemoteEndPoint 獲取遠(yuǎn)程終結(jié)點(diǎn) EndPoint ProtocolType 獲取 Socket的協(xié)議類型 SocketType 獲取 Socket的類型 第5章 C網(wǎng)絡(luò)編程方法概述 49 套接字編程 .NET中的 Socket類 2. Socket類的常用方法 ( 1) Bind(EndPoint address) 在服務(wù)器端,當(dāng)一個(gè)套接字被創(chuàng)建后,需要將它綁定到系統(tǒng)的一個(gè)特定地址。但它們并不能任意組合,不當(dāng)?shù)慕M合反而會(huì)導(dǎo)致無效套接字。 AddressFamily用來指定網(wǎng)絡(luò)類型; SocketType用來指定套接字類型(即數(shù)據(jù)連接方式); ProtocolType用來指定網(wǎng)絡(luò)協(xié)議。 1. Socket類的構(gòu)造函數(shù) Socket類的構(gòu)造函數(shù)原型如下: public Socket( AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType )。在大多數(shù)情況下, Socket類方法只是將數(shù)據(jù)封送到它們的本機(jī) Win32副本中并處理任何必要的安全檢查。 第5章 C網(wǎng)絡(luò)編程方法概述 45 套接字編程 套接字編程原理 圖 面向連接的套接字編程流程 第5章 C網(wǎng)絡(luò)編程方法概述 46 套接字編程 套接字編程原理 圖 面向無連接的套接字編程流程 第5章 C網(wǎng)絡(luò)編程方法概述 47 套接字編程 .NET中的 Socket類 針對(duì) Socket編程, .NET框架的 絡(luò)訪問的開發(fā)人員提供了 WinSock接口的托管實(shí)現(xiàn)。下面給出這兩種交互的套接字編程流程。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后再向服務(wù)器端套接字提出連接請(qǐng)求。 ( 1)服務(wù)器監(jiān)聽 服務(wù)器監(jiān)聽時(shí)服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。當(dāng)創(chuàng)建了這兩個(gè)套接字對(duì)象之后,將這兩個(gè)套接字連接起來就可以實(shí)現(xiàn)數(shù)據(jù)傳送了。 3.套接字工作原理 套接字可以像 Stream流一樣被視為一個(gè)數(shù)據(jù)通道,這個(gè)通道架設(shè)在客戶端應(yīng)用程序和服務(wù)器端程序之間,數(shù)據(jù)的讀取(接收)和寫入(發(fā)送)均針對(duì)這個(gè)通道來進(jìn)行。客戶端 /服務(wù)器結(jié)構(gòu)的軟件采用的方式就是異步非阻塞模式。函數(shù) select就是這樣的一個(gè)例子。阻塞對(duì)象上可以有非阻塞的調(diào)用方式,可以通過一定的 API去輪詢狀態(tài),在適當(dāng)?shù)臅r(shí)候調(diào)用阻塞函數(shù),就可以避免阻塞。對(duì)于非阻塞套接字,同樣調(diào)用 StreamReader類的 ReadLine( )方法讀取網(wǎng)絡(luò)緩沖區(qū)的數(shù)據(jù),不管是否讀到數(shù)據(jù)都立即返回,而不會(huì)一直掛在此函數(shù)調(diào)用上。比如調(diào)用 StreamReader類的 ReadLine( )方法讀取網(wǎng)絡(luò)緩沖區(qū)的數(shù)據(jù),如果調(diào)用的時(shí)候沒有數(shù)據(jù)到達(dá),那么此 ReadLine( )方法將一直掛在調(diào)用上,直到讀到一些數(shù)據(jù),此函數(shù)才返回。 ( 2)異步方式 通信的異步,指客戶端在發(fā)送請(qǐng)求后,不必等待服務(wù)端的回應(yīng)就可以發(fā)送下一個(gè)請(qǐng)求,這樣對(duì)于所有的請(qǐng)求動(dòng)作來說將會(huì)在服務(wù)端得到異步,這條請(qǐng)求的鏈路就像是一個(gè)請(qǐng)求隊(duì)列,所有的動(dòng)作在這里不會(huì)得到同步。 ( 1)同步方式 通信的同步,指客戶端在發(fā)送請(qǐng)求后,必須在服務(wù)端有回應(yīng)后才能發(fā)送下一個(gè)請(qǐng)求。 第5章 C網(wǎng)絡(luò)編程方法概述 42 套接字編程 套接字編程原理 2. Socket編程的通信方式 在利用 Socket進(jìn)行編程時(shí)要先了解以下幾個(gè)概念,同步( Synchronous)、異步( Asynchronous)、阻塞( Block)和非阻塞( Unblock)。 ( 2)向服務(wù)器發(fā)服務(wù)請(qǐng)求報(bào)文,等待并接收應(yīng)答;繼續(xù)提出請(qǐng)求。網(wǎng)絡(luò)接口軟件提供各種數(shù)據(jù)傳輸服務(wù),其執(zhí)行步驟如下。應(yīng)用程序軟件執(zhí)行具體的任務(wù),如字處理,電子表格和數(shù)據(jù)庫(kù)查詢等。 與服務(wù)器端相對(duì)應(yīng),客戶機(jī)執(zhí)行的計(jì)算通常被稱為前端處理。 ( 4)返回第二步,等待另一客戶請(qǐng)求。新進(jìn)程(或線程)處理此客戶請(qǐng)求,并不需要對(duì)其他請(qǐng)求作出應(yīng)答。 ( 3)接收到重復(fù)服務(wù)請(qǐng)求,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。 ( 1)打開一個(gè)通信通道并告知本地主機(jī),它愿意在某一地址和端口上接收客戶請(qǐng)求。因此服務(wù)器方一般都是先啟動(dòng)的。也就是說,服務(wù)進(jìn)程一直處于休眠狀態(tài),直到一個(gè)客戶對(duì)這個(gè)服務(wù)的地址提出了連接請(qǐng)求。在服務(wù)器上執(zhí)行的計(jì)算通常被稱為后端處理。在對(duì)稱的協(xié)議中,每一方都有可能扮演主從角色;在非對(duì)稱協(xié)議中,一方被不可改變的認(rèn)為是主機(jī),而另一方則是從機(jī)。 客戶機(jī) /服務(wù)器模式工作時(shí)要求有一套為客戶機(jī)和服務(wù)器所公認(rèn)的協(xié)議來保證服務(wù)能被提供(或接受)。在一個(gè)具有多臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)中,那些在其上運(yùn)行的應(yīng)用程序是為了請(qǐng)求另一臺(tái)計(jì)算機(jī)上的服務(wù)(如訪問數(shù)據(jù)庫(kù))的計(jì)算機(jī)稱為客戶端( Client),而處理這些服務(wù)請(qǐng)求(例如對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索,將結(jié)果返回)的計(jì)算機(jī)稱為服務(wù)器( Server)。 第5章 C網(wǎng)絡(luò)編程方法概述 40 套接字編程 套接字編程原理 1. C/S編程模式 在 TCP/IP網(wǎng)絡(luò)中軟硬件資源、運(yùn)算能力和信息通常都是不均等的,為了能夠?qū)@些資源進(jìn)行共享,需要一種機(jī)制在希望通信的進(jìn)程間建立聯(lián)系,為二者的數(shù)據(jù)交換提供服務(wù),這種機(jī)制即為通信進(jìn)程間的作用模式。 3.原始套接字( SOCK_RAW) 該接口允許對(duì)較低層協(xié)議,如 IP、 ICMP直接訪問。數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無差錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。文件傳輸協(xié)議( FTP)即使用流式套接字。 1.流式套接字( SOCK_STREAM) 提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò)、無重復(fù)的發(fā)送,且按發(fā)送順序接收。 套接字有兩種不同的類型:流套接字和數(shù)據(jù)報(bào)套接字。 套接字是通信的基石,是支持 TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。 Windows Sockets又利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通信工作。 Windows Sockets Berkeley Sockets都是基于 TCP/IP協(xié)議的; Windows Sockets 2從 Windows Sockets 來,與協(xié)議無關(guān)并向下兼容,可以使用任何底層傳輸協(xié)議提供的通信能力,來為上層應(yīng)用程序完成網(wǎng)絡(luò)數(shù)據(jù)通信,而不用關(guān)心底層網(wǎng)絡(luò)鏈路通信的情況,真正實(shí)現(xiàn)了底層網(wǎng)絡(luò)通信對(duì)應(yīng)用程序的透明。 Windows Sockets以 UNIX中流行的 Socket接口為范例定義了一套 Microsoft Windows網(wǎng)絡(luò)編程接口。但是最初它只能運(yùn)行在 UNIX操作系統(tǒng),不支持 DOS和 Windows操作系統(tǒng)。因?yàn)椴恍枰紤]所操作的文件(或設(shè)備)的類型,因此在 UNIX中,用一個(gè)套接字表示一個(gè)網(wǎng)絡(luò)文件描述符,編程就顯得簡(jiǎn)便的多。一個(gè)文件描述符提供了到一個(gè)文件對(duì)象的編程接口。 } } } 第5章 C網(wǎng)絡(luò)編程方法概述 37 套接字編程 套接字簡(jiǎn)介 套接字( Socket)的概念首先是由 BSD UNIX提出的。 (地址類型 [{0}]: {1},i,addr[i].( ))。 i 。 IPAddress[] addr = 。 (本地計(jì)算機(jī)名: + strHostName)。 namespace IPDnsTest { class Program { static void Main(string[] args) { string strHostName。 using 。 using System。 屬性、方法名 說 明 Copy( ) 創(chuàng)建當(dāng)前實(shí)例的拷貝 FromXml( ) 根據(jù) XML編碼重構(gòu) DnsPermission實(shí)例 Intersect( ) 創(chuàng)建當(dāng)前 DnsPermission實(shí)例與指定 DnsPermission實(shí)例的交集 IsSubsetOf( ) 確定當(dāng)前 DnsPermission實(shí)例是否為指定 DnsPermission實(shí)例的子集 IsUnrestricted( ) 檢查對(duì)象的許可狀態(tài) ToXml( ) 使用當(dāng)前的 DnsPermission實(shí)例及其狀態(tài)創(chuàng)建 XML編碼 Union( ) 創(chuàng)建當(dāng)前 DnsPermission實(shí)例與指定 DnsPermission實(shí)例的并集 第5章 C網(wǎng)絡(luò)編程方法概述 36 .NET網(wǎng)絡(luò)編程基礎(chǔ) 網(wǎng)絡(luò)編程中的常用類 3.類使用實(shí)例 以上介紹的 IP地址類和域名解析類是網(wǎng)絡(luò)編程中常用的基礎(chǔ)類。默認(rèn)情況下,所有本地和Inter域中的應(yīng)用程序都能訪問 DNS服務(wù),并且對(duì) Inter應(yīng)用程序無 DNS許可。 Dns類的方法如下表所示。它返回一個(gè) IPHostEntry對(duì)象以保存結(jié)果。 屬性、方法名 說 明 Address 獲取或設(shè)置 EndPoint的 IP地址 AddressFamily 獲取 IP地址族 Port 獲取或設(shè)置 EndPoint的 TCP端口號(hào) Max
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1