使用C#进行网络编程时,通常要用到:
System. Net 命名空间、
System. Net. Sockets 命名空间、
System. Net. Mail 命名空间。
24.2.1 System. Net 命名空间及相关类的使用
System. Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口。
它所包含的 WebRequest 类和 WebResponse 类形成了所谓的可插接式协议的基础。
(插接式协议是网络服务的一种实现,它使用户能够开发出使用 Internet 资源的应用程序,而不必考
虑各种不同协议的具体细节)
1. Dns 类 ——静态类
Dns 类从 Internet 域名系统(DNS)检索关于特定主机的信息。
Dns 类中的常用方法及说明如下:
GetHostAddresses ( ) 返回指定主机的 IP 地址
GetHostName ( ) 获取本地计算机的主机名
使用:
IPAddress[] ips = Dns.GetHostAddresses( textBox1.Text ) ; //获取指定主机的 IP 地址
foreach( IPAddress ip in ips ) //循环访问获得的 IP 地址
{
textBox2.Text = ip.ToString(); //将得到的 IP 地址显示在文本框中
}
2. IPAddress 类
IPAddress 类包含计算机在 IP 网络上的地址,主要用来提供网际协议(IP)地址。
常用属性: Address 属性 网际协议地址
常用方法: Parse ( ) 将 IP 地址字符串转换为 IPAddress 实例
3. IPEndPoint 类
IPEndPoint 类主要用来将网络端点表示为 IP 地址和端口号。
常用属性:
Address 属性 获取或设置终结点的 IP 地址
Port 属性 获取或设置终结点的端口号
使用:
IPEndPoint ipePoint = new IPEndPoint( IPAddress.Parse(textBox1.Text) , 80 ) ; //实例化 IPEndPoint 类对象
label2.Text = "IP 地址:" + ipePoint.Address.ToString() + "\n 端口号:"… //使用 IPEndPoint 类对象获取…
4. WebClient 类
WebClient 类提供向 URI标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。
常用属性:
BaseAddress 属性 获取或设置 WebClient 发出请求的基 URI
Encoding 属性 获取或设置用于上传和下载字符串的 Encoding
使用:
WebClient wclient = new WebClient(); //实例化 WebClient 类对象
wclient.BaseAddress = textBox1.Text; //设置 WebClient 的基 URI
wclient.Encoding = Encoding.UTF8; //指定下载字符串的编码方式
wclient.Headers.Add ("Content-Type", "application/x-www…") ; //为 WebClient 类对象添加标头
Stream stream = wclient.OpenRead ( textBox1.Text ) ; //
StreamReader sreader = new StreamReader ( stream ) ;
string str = string.Empty;
while(( str = sreader.ReadLine() ) != null )
{
richTextBox1.Text += str + "\n";
}
5. WebRequest 类和 WebResponse 类
WebRequest 类是 .NET Framework 的请求/相应模型的抽象基类,用于访问 Internet 数据。
(使用该请求/相应模型的应用程序可以用协议不可知的方式从 Internet 请求数据。
在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。)
WebResponse 类也是抽象基类,应用程序可以使用 WebResponse 类(以协议不可知的方式)参与请求
和响应事务,而从 WebResponse 类派生的协议类携带请求的详细信息。
另外,需要注意的是,客户端应用程序不直接创建 WebResponse 对象,而是通过对 WebRequest 实例
调用 GetResponse 方法来进行创建。