Net classes 与 Microsoft 的 WinInet API 的相似之处在于允许应用程序使用 Internet 协议来获取和发送数据。尽管如此,Net classes 在设计和功能上有很大差别。正如您可能已从上述设计目标中猜想到的那样,其最显著的差异是 Net classes 设计的重点放在了经受高强度的服务器环境。
Net Classes 的形式
现在让我们仔细研究一些使用 Net classes 编写的代码。从逻辑角度上讲,Net classes 包含三个层:请求/响应层、应用协议层和传输层。WebRequest 和 WebResponse 类代表请求/响应层。HTTP、TCP 和 UDP 类组成了应用协议层,而套接字存在于传输层中。WebRequest/WebResponse 和 HTTP 可以在 System.Net 名称空间中找到,而 TCP/UDP 和套接字则处在 System.Net.Sockets 名称空间中。

图 1. Net classes
下面对每一层进行介绍,并有一个代码示例显示其用法。
请求/响应模型
请求/响应模型位于顶部,提供一种简单的方式访问 Web 上的资源。这个示例显示如何获取一个 Web 页并将其内容写入到控制台应用程序的屏幕上。
使用 Visual Basic
"设置用于获取服务器流的变量
Dim WReq As WebRequest
Dim WResp As WebResponse
Dim sr As StreamReader
" 创建将 URI 传递给 .Create() 方法的 WebRequest 对象
" 并通过调用 .GetResponse() 从服务器获取响应;
" 注意 WebRequestFactory 总是用于创建这种请求。
" 当涉及进展时,我们会仔细研究这样做的原因
WReq = WebRequestFactory.Create("http://www.microsoft.com/default.htm")
WResp = WReq.GetResponse()
" 从服务器获取可读的流——将数据编写为 ASCII 码以写入到控制台
sr = new StreamReader(WResp.GetResponseStream(), Encoding.ASCII)
" 声明用于读取文本的变量
Dim Buffer(1024) As Char
Dim bytesread As Integer
Dim length As Integer
length = 1024
" 从流读取并将任何数据写入到控制台
bytesread = sr.Read(Buffer, 0, length)
Do while (bytesread > 0)
Console.Write( Buffer,0, bytesread)
bytesread = sr.Read( Buffer, 0, length)
Loop
" 完成时关闭流
sr.Close
使用 C#
// 创建将 URI 传递给 .Create() 方法的 WebRequest 对象
// 并通过调用 .GetResponse() 从服务器获取响应;
WebRequest WReq = WebRequestFactory.Create
("http://www.microsoft.com/default.htm");
WebResponse WResp = WReq.GetResponse();
// 从服务器获取可读的流——将数据编写为 ASCII 码以写入到控制台
StreamReader sr = new StreamReader(WResp.GetResponseStream(),
Encoding.ASCII);
// 声明用于读取文本的变量
int length = 1024;
char [] Buffer = new char[1024];
int bytesread = 0;
// 从流读取并将任何数据写入到控制台
bytesread = sr.Read( Buffer, 0, length);
while( bytesread > 0 )
{
Console.Write( Buffer,0, bytesread);
bytesread = sr.Read( Buffer, 0, length);
}
// 完成时关闭流
sr.Close();
此文章不能满足您的需求?那就就Google一下吧:)

