C# Dns.GetHostEntry或Dns.Resolve。如何?
这就是我创建套接字连接的方式。如您所见,主机IP是手动设置的。但是如何自动得到它呢?我不想为不同的网络重新编译我的应用程序…从MSDN: 如果您不关心分配了哪个本地地址,则可以创建C# Dns.GetHostEntry或Dns.Resolve。如何?,c#,sockets,C#,Sockets,这就是我创建套接字连接的方式。如您所见,主机IP是手动设置的。但是如何自动得到它呢?我不想为不同的网络重新编译我的应用程序…从MSDN: 如果您不关心分配了哪个本地地址,则可以创建 IPEndPoint使用IPAddress.Any作为地址参数,并且 基础服务提供商将分配最合适的网络 地址。这可能有助于简化应用程序 多个网络接口 发件人: Socket.Bind方法使用Any字段指示Socket 实例必须侦听所有网络接口上的客户端活动。 Any字段相当于点四元符号中的0.0.0 因此,您只需将前
IPEndPoint
使用IPAddress.Any
作为地址参数,并且
基础服务提供商将分配最合适的网络
地址。这可能有助于简化应用程序
多个网络接口
发件人:
Socket.Bind
方法使用Any
字段指示Socket
实例必须侦听所有网络接口上的客户端活动。
Any
字段相当于点四元符号中的0.0.0
因此,您只需将前三行替换为:
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);
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 14372);