繁体中文
设为首页
加入收藏
当前位置:在线教程首页 >> 程序设计 >> .Net专区 >> winsock应用 >> Net Classes 的形式

Net Classes 的形式

2005-07-07 08:40:00  作者:佚名  来源:msdn  浏览次数:166  文字大小:【】【】【

Net classes 与 Microsoft 的 WinInet API 的相似之处在于允许应用程序使用 Internet 协议来获取和发送数据。尽管如此,Net classes 在设计和功能上有很大差别。正如您可能已从上述设计目标中猜想到的那样,其最显著的差异是 Net classes 设计的重点放在了经受高强度的服务器环境。

Net Classes 的形式

现在让我们仔细研究一些使用 Net classes 编写的代码。从逻辑角度上讲,Net classes 包含三个层:请求/响应层、应用协议层和传输层。WebRequestWebResponse 类代表请求/响应层。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一下吧:)
Google
 

责任编辑:admin


相关文章
禁止QQ广告
使用渲染器
实现多首mp3连放
MX 2004 数据绑定
让SWF文件不显示在IE缓存中
体会通道及差值混合
烧纸效果的旧照片--纯PS处理
UDPClient 与多点传送
如何使用 Net Classes
套接字
 

最新文章

更多

· UDPClient 与多点传送
· Net Classes 的形式...
· 如何使用 Net Classes...
· 套接字
· TCP 和 UDP
· HTTP、TCP 和 UDP 类...

推荐文章

更多

· UDPClient 与多点传送
· Net Classes 的形式...
· 如何使用 Net Classes...
· 套接字
· TCP 和 UDP
· HTTP、TCP 和 UDP 类...

热点文章

更多