C#socket编程序(一)

    在讲socket编程之前,我们先看一下最常用的一些类和方法,相信这些能让你事半功倍。

    一、IP地址操作类

      1、IPaddress类

         a、在该类中有一个 parse()方法,能够把点分十进制IP地址 转换成 i address类

           例如: IPaddress IPAdd = IPaddress.parse("192.168.9.101");

         b、IPAdress 提供四个只读字段

         any  代表本地系统可用的任何IP地址

        Broadcase 用于代表本地网络的IP广播地址   

           Loopback 用于代表系统的回送地址 

           None   表示 本地系统上没有网络接口

          其中IPAddress.Any最常用可以用来表示本机上所有的IP地址,这对于socket服务进行侦听时,最方便使用,不用对每个IP进行侦听了。而IPAddress.Broadcase可用来UDPIP广播,这些具体讲socket时再详细介绍。

 

2、IPEndPoint类

    

 我们可以通过二种构造方法来创建IPEndPoint类:     

     aIPEndPoint(long address, int port)     

     bIPEndPoint(IPAddress address, int port)      四个属性:    

 

      Address 

 

      AddressFamily 

 

      Port 

 

      MaxPort 

 

      MinPort 

这些应该从名字上就很好理解,不再一一介绍。IPEndPoint其实就是一个IP地址和端口的绑定,可以代表一个服务,用来Socket通讯。

  二、DNS相关类      

      DNS类有四个静态方法,来获取主机DNS相关信息,      

      1GetHostName()       通过Dns.GetHostName()可以获得本地计算机的主机名       

       2GetHostByName()      根据主机名称,返回一个IPHostEntry 对象:        

 

            IPHostEntry GetHostByName(string hostName) 

 

            其中IPHostEntry把一个DNS主机名与一个别名和IP地址的数组相关联,包含三个属性: 

 

            AddressList:一个IPAddress对象的数组 

 

            Aliases:一个字符串对象数组 

 

            HostName:一个用于主机名的字符串对象      

     3GetHostByAddress()      类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。

 

            IPHostEntry GetHostByAddress(IPAddress address) 

 

            IPHostEntry GetHostByAddress(string address) 

 

      4Resolve() 

 

      当我们不知道输入的远程主机的地址是哪种格式时(主机名或IP地址),用以上的二种方法来实现,我们可能还要通过判断客户输入的格式,才能正确使用,但Dns类提供一更简单的方法Resolve(),该方法可以接受或者是主机名格式或者是IP地址格式的任何一种地址,并返回IPHostEntry对象。      常用方法就写到这里了,当然针对网络编程不可能只有这么几个类和方法,只不过这几个我们最常用,也非常的简单。

 

          

原文地址:https://www.cnblogs.com/yplong/p/3149777.html