Dns.GetHostEntry или Dns.Resolve.Как? - PullRequest
       1

Dns.GetHostEntry или Dns.Resolve.Как?

0 голосов
/ 04 февраля 2012
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-адрес хоста устанавливается вручную.Но как получить это автоматически?Я не хочу перекомпилировать свое приложение для разных сетей ...

1 Ответ

1 голос
/ 04 февраля 2012

С Socket.Bind на MSDN:

Если вам все равно, какой локальный адрес назначен, вы можете создать IPEndPoint с использованием IPAddress.Any в качестве параметра адреса и основной поставщик услуг назначит наиболее подходящую сеть адрес. Это может помочь упростить ваше приложение, если у вас есть несколько сетевых интерфейсов.

С IP-адрес. Любой :

Метод Socket.Bind использует поле Any, чтобы указать, что Socket Экземпляр должен прослушивать активность клиента на всех сетевых интерфейсах. Поле Any эквивалентно 0.0.0.0 в точечно-четырехзначной записи.

Таким образом, вы можете просто заменить первые три строки на:

IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, 14372);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...