Нуждаюсь в помощи с многоадресной передачей udp исследование сервера в c#

def http_get(url, params=None):
    with urllib.request.urlopen(url, params) as w:
        return w.read()
6
задан Community 23 May 2017 в 11:58
поделиться

2 ответа

Я должен запустить путем высказывания, что я ничего не знаю о C#, но...

Рассмотрение определения ipep в клиентском коде похоже, что Вы пытаетесь отправить свои данные себе, вместо того, чтобы широковещательно передать их (как был предложен в Вашем другом вопросе). Вещь, которая привлекла мое внимание, состояла в том, что "127.0.0.1" адрес "localhost".

Это объяснило бы, почему это работает приятно при выполнении обоих клиент и сервер на одной машине когда это будет отправлять к себе.

Я ожидал бы, что корректная конечная точка будет для широковещательного адреса (например, "255.255.255.255") - хотя Вы могли также выбрать широковещательный адрес локальной сети, что Вы идете, в зависимости от того, как широко Вы хотите широковещательно передать.

3
ответ дан 17 December 2019 в 20:36
поделиться
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10294);

Должен стать:

IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("255.255.255.255"), 10294);

И

newsock.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Any, IPAddress.Parse("127.0.0.1")));

Должен стать

newsock.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Any, IPAddress.Parse("255.255.255.255")));

Я думаю.

Хорошо, это не работает, значит, что-то все еще не так.

-1
ответ дан 17 December 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: