.NET网络编程常用类

IPHostEntry

通过Dns解析IP地址可以获得IPHostEntry实例,这个实例中包含了一个IP地址的主机名、地址以及别名。其中IP地址存储在IPAddress类中。

请求和响应

       System.Net名字空间下有进行HTTP请求和文件访问的类,它们是HttpWebRequestHttpWebResponseFileWebRequestFileWebResponse

WebRequest&WebResponse

       请求和响应需要定义相关权限,需要用到WebPermission以及WebPermiAttribute。用户可以使用WebClient更容易的使用WebRequestWebResponse,使用WebClient可以让用户方便下载文件以及上传文件到服务器。

示例1

Uri uri = new Uri("http://www.baidu.com");

WebRequest request = WebRequest.Create(uri);

WebResponse response = request.GetResponse();

Stream stream = response.GetResponseStream();

StreamReader reader = new StreamReader(stream);

 

string line;

while ((line = reader.ReadLine()) != null)

{

   Console.WriteLine(line);

}

response.Close();

reader.Close();

示例2

private void buttonOpenFile_Click(object sender, System.EventArgse)

{

    string fileName = textFileOpen.Text;

    FileWebRequest request =

        (FileWebRequest)WebRequest.Create(fileName);

    Stream stream = request.GetResponse().GetResponseStream();

 

    StreamReader reader = new StreamReader(stream);

    textData.Text = reader.ReadToEnd();

    reader.Close();

}

 

连接管理

       ServicePointServicePointManagerHTTP连接中扮演重要角色。与一个URI相关的ServicePoint实例可以控制多个连接。ServicePointManager可以创建新的ServicePoint或者找到已经创建的ServicePoint实例。

Cookies

       存放在客户端的Cookies用来记录请求的一些信息,可以被服务器使用。当我们从一个Web服务器中进行带Cookies的请求时,我们可以通过HttpWebResponseCookies属性返回的CookieCollection类中获得需要的Cookies信息。当然我们也可以使用CookieContainercookies信息传给服务器。

代理服务器

       使用WebProxy类我们可以指定Internet请求所使用的代理服务器。使用GlobalProxySelection类,我们可以定义全局的默认请求代理,除非我们特殊设置其请求属性。

Sockets

       System.Net.Sockets名字空间下有socket编程相关的类。Socket可以提供基于连接的TCP访问以及无连接的UDP访问。

URI

       URISystem名字空间下。通用资源标示符,指定网络资源的位置。

Uri baseUri = new Uri("http://msdn.microsoft.com");

Uri newUri = new Uri(baseUri, "code/default.asp");

       可以使用UriBuilder来修改Uri信息,类似stringStringBuilder

IPAddress

IPAddress用来存储IP地址信息。

IPAddress address = IPAddress.Parse("204.148.170.161");

预定义IPAddress

IPAddress.None 用来定义一个不可监听客户端的服务器

IPAddress.Loopback 环回地址

IPAddress.Broadcast 广播地址

Dns

   域名地址解析。使用Resolve方法返回IPHostEntry实例。解析地址不仅可以使用同步的方法,也可以使用异步的方法。

using System;

using System.Net;

using System.Net.Sockets;

 

namespace Hello

{

   class Program

   {

      static void Main(string[] args)

      {

        string address = "www.baidu.com";

        Dns.BeginGetHostEntry(address, new AsyncCallback(DnsLoopUpCompleted), null);

        Console.WriteLine("Waiting for the result...");

        Console.ReadKey();

      }

 

      public static void DnsLoopUpCompleted(IAsyncResult ar)

      {

        IPHostEntry hostEntry = Dns.EndGetHostEntry(ar);

        Console.WriteLine("IP Addresses for {0}: ", hostEntry);

        foreach (IPAddress address in hostEntry.AddressList)

           Console.WriteLine(address.ToString());

 

        Console.WriteLine("\nAlias names:");

        foreach (string aliasName in hostEntry.Aliases)

           Console.WriteLine(aliasName);

 

        Console.WriteLine("\nAnd the real hostname:");

        Console.WriteLine(hostEntry.HostName);

      }

   }

}

 

posted @ 2011-10-23 15:56  Erebus_NET  阅读(388)  评论(0编辑  收藏  举报