Какой IP-адрес мне нужно использовать для связи по локальной сети с использованием сокетов в C#? - PullRequest
0 голосов
/ 24 марта 2020

В настоящее время я пытаюсь создать приложение, в котором 2 устройства взаимодействуют по сети. Я использую сокеты в C# для этого. Я выяснил, как вы подключаетесь к localhost, однако для связи по сети я не уверен, какой IP использовать.

Насколько я знаю, для связи с localhost кажется, что вы просто сделайте это:

IPAddress IP = Dns.GetHostEntry("localhost").AddressList[0];

Или ...

IPAddress IP = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];

Как мне кажется, возвращает то же значение: 127.0.0.1, и это прекрасно работает.

Так для подключения по сети я подумал, что мог бы использовать publi c IP сервера. Если я пингую его от клиента, это отражается, поэтому я подумал, что проблем не будет.

Однако при попытке использовать его, поместив его в виде строки в 'IPAddress.Parse ("XXXX");' Я получаю исключение сокета: «Запрошенный адрес недопустим в своем контексте». Выдает это исключение на Server.Start (); поэтому проблема не в получении соединения от клиента или чего-то подобного.

Я не уверен, почему. Я не мог найти какое-либо краткое исправление или учебник для этого. Или, может быть, моя формулировка была отключена, в любом случае, любая помощь будет оценена. Есть ли другой конкретный c IP, который мне нужно использовать, или другой метод, чтобы сделать это полностью?

1 Ответ

0 голосов
/ 24 марта 2020

Если оба устройства находятся в одной сети, вы можете использовать широковещательный адрес сети для отправки пакетов UDP на все устройства в сети.

Если для этого у вас есть выделенный сервер, вам нужно обратиться Сервер, на котором работает ваш прослушиватель Socket.

Возможно, ознакомьтесь с этим руководством, чтобы понять, как оно работает:

Пример сокета асинхронного сервера

Если я неправильно понял ваш контекст, не стесняйтесь поправить меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...