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

套接字

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

对于熟悉 Winsock 的开发者或那些目标是套接字所提供的控件级的人们来说,Net classes Socket API 使用起来的感觉就象您已熟悉和喜爱的 Win32 API 一样。套接字类在 Net classes 中充当从管理代码到本地代码的过渡点。在大多数情况下,套接字只是将数据汇集到其本地的 Win32 套接字中,并进行任何必要的安全检查。下面的示例函数显示如何使用套接字类将数据发送到 HTTP 服务器并读取响应。

使用 C#

public string DoSocketGet(string server)
{
   // 设置要写入到服务器的变量和字符串
   Encoding ASCII = Encoding.ASCII;
   string Get = "GET / HTTP/1.1
Host: " + server + 
                   "
Connection: Close

";
   Byte[] ByteGet = ASCII.GetBytes(Get);
   Byte[] RecvBytes = new Byte[256];

   // IPAddress 和 IPEndPoint 表示接收请求的端点
   IPAddress hostadd = DNS.Resolve(server);
   IPEndPoint EPhost = new IPEndPoint(hostadd, 80);            
   StringBuilder sb = new StringBuilder();
   
   // 创建通过 TCP 发送数据的套接字
   Socket s = new Socket(AddressFamily.AfINet, 
                 SocketType.SockStream,
             ProtocolType.ProtTCP);
   
   // 使用 IPEndPoint 连接到主机
   if (s.Connect(EPhost) != 0) 
   {
      return "Unable to connect to host";          
   }            
               
   // 将 GET 文本发送到主机
   s.Send(ByteGet, ByteGet.Length, 0);            
               
   // 接收默认页面,循环直至接收到所有字节
   Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
   sb.Append( "Default HTML page on " + server + ":
");
   sb.Append( ASCII.GetString(RecvBytes, 0, bytes));            

   while (bytes > 0) 
   {
      bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
      sb.Append( ASCII.GetString(RecvBytes, 0, bytes));         
   }
   
   return sb.ToString();
}           
此文章不能满足您的需求?那就就Google一下吧:)
Google
 

责任编辑:admin


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

最新文章

更多

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

推荐文章

更多

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

热点文章

更多