Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Dns.GetHostEntry或Dns.Resolve。如何?_C#_Sockets - Fatal编程技术网

C# Dns.GetHostEntry或Dns.Resolve。如何?

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

这就是我创建套接字连接的方式。如您所见,主机IP是手动设置的。但是如何自动得到它呢?我不想为不同的网络重新编译我的应用程序…

从MSDN:

如果您不关心分配了哪个本地地址,则可以创建
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);