Dns.GetHostEntry or Dns.Resolve. How to?
本文关键字:Dns to How Resolve GetHostEntry or | 更新日期: 2023-09-27 18:22:45
IPHostEntry ipHost = Dns.Resolve("192.168.182.1");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 14372);
wSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
wSocket.Bind(ipEndPoint);
这就是我创建套接字连接的方式。如您所见,主机 IP 是手动设置的。但是如何自动获得它呢?我不想为不同的网络重新编译我的应用程序......
来自 MSDN 上的 Socket.Bind :
如果您不关心分配哪个本地地址,则可以创建一个
IPEndPoint
使用IPAddress.Any
作为地址参数,并且 底层服务提供商将分配最合适的网络 地址。如果您有以下情况,这可能有助于简化您的应用程序 多个网络接口。
来自 IPAddress.Any:
Socket.Bind
方法使用Any
字段来指示Socket
实例必须侦听所有网络接口上的客户端活动。Any
字段等效于点分四边形表示法中的0.0.0.0
。
因此,您可以简单地将前三行替换为:
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 14372);