首页>计算机>软件水平考试>复习指导>正文
软件水平考试C#.Net网络程序开发基础之Socket篇

www.zige365.com 2008-11-24 22:50:04 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

  Socket.SendTo 方法 将数据发送到特定终结点。
  public int SendTo(byte[], EndPoint);(有重载方法)
  Socket.Receive方法:将数据从连接的 Socket 接收到接收缓冲区的特定位置。
  public int Receive(byte[],int,SocketFlags);
  Socket.ReceiveFrom方法:接收数据缓冲区中特定位置的数据并存储终结点。
  public int ReceiveFrom(byte[], int, SocketFlags, ref EndPoint);
  Socket.Bind 方法:使 Socket 与一个本地终结点相关联:
  public void Bind( EndPoint localEP );
  Socket.Listen方法:将 Socket 置于侦听状态。
  public void Listen( int backlog );
  Socket.Accept方法:创建新的 Socket 以处理传入的连接请求。
  public Socket Accept();
  Socket.Shutdown方法:禁用某 Socket 上的发送和接收
  public void Shutdown( SocketShutdown how );
  Socket.Close方法:强制 Socket 连接关闭
  public void Close();
  
  
  可以看出,以上许多方法包含EndPoint类型的参数,在Internet中,TCP/IP 使用一个网络地址和一个服务端口号来唯一标识设备。网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络地址和服务端口的组合称为终结点,在 .NET 框架中正是由 EndPoint 类表示这个终结点,它提供表示网络资源或服务的抽象,用以标志网络地址等信息。.Net同时也为每个受支持的地址族定义了 EndPoint 的子代;对于 IP 地址族,该类为 IPEndPoint。IPEndPoint 类包含应用程序连接到主机上的服务所需的主机和端口信息,通过组合服务的主机IP地址和端口号,IPEndPoint 类形成到服务的连接点。
  
  用到IPEndPoint类的时候就不可避免地涉及到计算机IP地址,.Net中有两种类可以得到IP地址实例:
  
  IPAddress类:IPAddress 类包含计算机在 IP 网络上的地址。其Parse方法可将 IP 地址字符串转换为 IPAddress 实例。下面的语句创建一个 IPAddress 实例:
  
  IPAddress myIP = IPAddress.Parse("192.168.1.2");
  
  
  Dns 类:向使用 TCP/IP Internet 服务的应用程序提供域名服务。其Resolve 方法查询 DNS 服务器以将用户友好的域名(如"host.contoso.com")映射到数字形式的 Internet 地址(如 192.168.1.1)。Resolve方法 返回一个 IPHostEnty 实例,该实例包含所请求名称的地址和别名的列表。大多数情况下,可以使用 AddressList 数组中返回的第一个地址。下面的代码获取一个 IPAddress 实例,该实例包含服务器 host.contoso.com 的 IP 地址。
  
  IPHostEntry ipHostInfo = Dns.Resolve("host.contoso.com");
  IPAddress ipAddress = ipHostInfo.AddressList[0];
  
  
  你也可以使用GetHostName方法得到IPHostEntry实例:
  
  IPHosntEntry hostInfo=Dns.GetHostByName("host.contoso.com")
  
  
  在使用以上方法时,你将可能需要处理以下几种异常:
  
  SocketException异常:访问Socket时操作系统发生错误引发
  
  ArgumentNullException异常:参数为空引用引发
  
  ObjectDisposedException异常:Socket已经关闭引发
  
  在掌握上面得知识后,下面的代码将该服务器主机( host.contoso.com的 IP 地址与端口号组合,以便为连接创建远程终结点:
  
  IPEndPoint ipe = new IPEndPoint(ipAddress,11000);
  
  
  确定了远程设备的地址并选择了用于连接的端口后,应用程序可以尝试建立与远程设备的连接。下面的示例使用现有的 IPEndPoint 实例与远程设备连接,并捕获可能引发的异常:
  
  try {
  s.Connect(ipe);//尝试连接
  }
  //处理参数为空引用异常
  catch(ArgumentNullException ae) {
  Console.WriteLine("ArgumentNullException : {0}", ae.ToString());

本新闻共3页,当前在第2页  1  2  3  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
软考辅导:如何使用ADO.NET轻松操纵数据库