C#网络编程概述(转)
2008-05-24 12:35
C#作为一门集众家之长的语言,在各个方面尤其是网络编程方面有着很大的优
势。本文就向大家介绍一下用 C#进行网络编程的一些基本知识和方法。
微软的.Net 框架为我们进行网络编程提供了以下两个名字空间:
System.Net 以及 System.Net.Sockets。通过合理运用其中的类和方法,我们
可以很容易地编写出各种网络应用程序。这种网络应用程序既可以是基于流套接
字的,也可以是基于数据报套接字的。而基于流套接字的通讯中采用最广泛的协
议就是 TCP 协议,基于数据报套接字的通讯中采用最广泛的自然就是 UDP 协议
了。
下面我重点向大家介绍 C#网络编程中的一些类:Dns 类、IPHostEntry
类、IPEndPoint 类以及 Socket 类,最后我会给出相应的实例以加深读者的理
解。
Dns 类:
向使用 TCP/IP Internet 服务的应用程序提供域名服务。其 Resolve()方
法查询 DNS 服务器以将用户友好的域名(如"www.baidu.com")映射到数字
形式的 Internet 地址(如 192.168.1.1)。Resolve()方法返回一个
IPHostEnty 实例,该实例包含所请求名称的地址和别名的列表。大多数情况
下,可以使用 AddressList 数组中返回的第一个地址。
Resolve()方法的函数原型如下:
public static IPHostEntry Resolve(string hostName);
下面的代码获取一个 IPAddress 实例,该实例包含服务器 www.baidu.com 的
IP 地址:
IPHostEntry ipHostInfo = Dns.Resolve("www.baidu.com");
IPAddress ipAddress = ipHostInfo.AddressList[0];
不过在 Dns 类中,除了通过 Resolve()方法,你还可以通过
GetHostByAddress()方法以及 GetHostByName()方法来得到相应的
IPHostEntry 实例,函数原型如下:
public static IPHostEntry GetHostByAddress(string IPAddress);
public static IPHostEntry GetHostByName(string hostName);
下面的代码显示了如何分别运用以上两种方法获得包含服务器 www.baidu.com
的相关信息的 IPHostEntry 实例:
评论9