国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#網絡編程之DNS類、IPHostEntry類和IPEndPoint類

2023-05-12 12:29:41
字體:
來源:轉載
供稿:網友

.NET提供了兩個用于網絡編程的名空間: System.Net和System.Net.Socket.這些類和方法可以幫助我們進行網絡編程,通過網絡進行通信.通信可以是面向連接的,也可以是面向無連接的;既可以采用數據流模式,也可以采用數據報的模式.廣泛使用的TCP協議用基于數據流的通信,而UDP協議用于基于數據報的通信.

System.Net.Sokcets.Socket 是System.Net.Sockets名空間下面一個非常重要的類. 每一個套接字的實例都有一個本地的和一個遠程的端點附加在上面.本地的端點包括了當前套接字實例的連接信息.

.NET還提供了其它的一些類用于我們進行網絡編程,像IPEndPoint, IPAddress, SocketException等等. .NET 支持同步和異步兩種在客戶機和服務器之間的通信方式..NET提供了不同的方法用于支持這兩種類型的通信.同步的方法工作在阻塞模式,方法在工作完成之前是不返回的.但是異步的方法工作在非阻塞模式,但是立即返回的,可能在操作完成之前.

Dns類

Dns位于System.net名空間下,它用于創建和發送一個請求用于從DNS服務器獲取一個主機服務器的信息.當然,在訪問DNS之前,機器必須首先要連接到網絡上,當在一臺獨立的機器上執行DNS查詢時,由于無法連接到DNS服務器,就會產生一個 Systm.Net.SocketException異常.這個類的所有成員方法都是靜態的.這個類中最重要的方法是:

public static IPHostEntry GetHostByAddress(string address)

地址應該是一個用點開的正確的IP地址,這個方法返回一個IPHostEntry 實例,它包括了主機的信息.如果DNS服務器不可用,這個方法將產生一個SocketException異常.

public static string GetHostName()

這個方法返回本地機器的DNS服務器名稱.

public static IPHostEntry Resolve(string hostname)

這個方法解析一個DNS主機名稱或IP地址為一個IPHostEntry實例. 主機名稱應該是一個用點分開的IP地址,如:127.0.0.1www.rohu.com.

IPHostEntry 類

IPHostEntry 類是一個容器類,它包含INTERNET上主機的地址信息.這個類不是線程安全的.下面是這個類的幾個重要成員.

AddressList 屬性

該屬性給出一個IPAddress的數組,可以獲取或設置與主機關聯的 IP 地址列表.

Aliases 屬性

該屬性用于獲取或設置與主機關聯的別名列表。

下面的程序用到了上面提到的兩個類.

using System;
using System.Net;
using System.Net.Sockets;

class MyClient

{
   public static void Main()
   {
      IPHostEntry IPHost = Dns.Resolve("www.rohu.com");
     Console.WriteLine(IPHost.HostName);
     string[] aliases = IPHost.Aliases;
     Console.WriteLine(alises.Length);

     IPAddress[] addr = IPHost.AddressList;
     Console.WriteLine(addr.Length);
     for(int i=0; i<addr.Length; i++)
     {
        Console.Writeline(addr[i]);
     }
   }
}

IPEndPoint 類

這是一個從抽象類EndPoint繼承而來的一個類,它將網絡端點表示為 IP 地址和端口號。下面展示的是這個類的使用.

IPEndPoint(long address ,int port)
IPEndPoint(IPAddress addr, int port)
IpHostEntry IPHost = Dns.Resolve("www.rohu.com");
Console.WriteLine(IPHost.HostName);
string[] aliases = IPHost.Aliases;
IPAddress[] addr = IPHost.AddressList;
Console.WriteLine(addr[0]);
EndPoint ep = new IPEndPoint(addr[0], 80);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃源县| 清原| 奎屯市| 两当县| 洛宁县| 襄樊市| 延寿县| 阿勒泰市| 海原县| 滁州市| 屯昌县| 同仁县| 博乐市| 广水市| 潜江市| 阜城县| 安国市| 改则县| 筠连县| 永丰县| 绍兴县| 古丈县| 翁牛特旗| 海晏县| 建昌县| 双桥区| 维西| 大余县| 潞城市| 五原县| 永宁县| 永新县| 红桥区| 卓尼县| 浠水县| 赫章县| 榆社县| 滦平县| 长海县| 句容市| 宜丰县|