Dns是什么?IPHostEntry/IPAddress/IPEndPort是什么?怎么用?

1.Dns是什么?


首先看一下 客户端部分网络连接对Dns的应用

1.IPHostEntry iPHostEntry = Dns.GetHostEntry(ipAddress);

什么时候使用这个方法呢?
ipAddress是域名的时候 使用这个方法把域名转换为ip

2.

DNSState dNSState = new DNSState();
    dNSState.hostName = address;
    dNSState.port = port;
Dns.BeginGetHostAddresses(hostNameOrAddress, GetIPAddressCallback, dNSState);

异步返回指定主机的IP地址  hostNameOrAddress是域名

public void GetIPAddressCallback(IAsyncResult ar) {
        try {
                DNSState dnsContent = (DNSState)ar.AsyncState;
                dnsContent.resolvedIPs = Dns.EndGetHostAddresses(ar);
                _dnsInfo = dnsContent;
                Connect(_dnsInfo);
            } catch(Exception exc) {

            }

    }

3.

dnsContent.resolvedIPs = Dns.EndGetHostAddresses(ar);

结束对DNS信息的异步请求 用于保存由BeginGetHostAddresses的hostNameOrAddress参数指定的IP地址

由以上三个例子可以看出Dns的作用是: 将域名解析成主机能识别的IP地址

PS:

域名是什么? WWW.Baidu.com 就是域名;

                      192.168.0.1 就是IP地址


2.IPHostEntry/IPAddress/IPEndPort是什么?

IPHostEntry :

是一个容器类 将域名系统(Dns)主机名和别名(IPHostEntry.Aliases)与匹配的IP地址关联 它提供主机的ip地址(借助IPAddress类) 主机名及别名

eg:

IPHostEntry iPHostEntry = Dns.GetHostEntry(ipAddress);

Dns(域名系统)把域名 ipAddress 通过GetHostEntry 方法转换为 iPHostEntry
iPHostEntry.AddressList[0] 就是 ipAddress 对应的IP地址


IPAddress:

主机能识别的IP地址

1.把string类型的ip地址转换成IPAddress类型的参数

IPAddress.TryParse(ipAddress, out address)

ipAddress     string类型参数
address         IPAddress类型参数


IPEndPort:

是 IP地址+端口号

IPEndPort iPEndPoint = new IPEndPoint(IPAddress address,int port);

eg:

_socket.BeginConnect(iPEndPoint, ConnetSuccess, _socket);

猜你喜欢

转载自blog.csdn.net/SmillCool/article/details/128544414