UDP Broadcast в C# работает только на той машине, на которой он запущен.C#

Место общения программистов C#
Ответить
Anonymous
 UDP Broadcast в C# работает только на той машине, на которой он запущен.

Сообщение Anonymous »

Существует следующий тестовый код хоста:

Код: Выделить всё

    string localIP = IP.ToString();
UdpClient udpClient = new UdpClient();
udpClient.EnableBroadcast = true;
IPEndPoint broadcastEndPoint = new IPEndPoint(IPAddress.Parse("255.255.255.255"), 11000);
try
{
var counter = 0;
while (counter < 5)
{
byte[] sendBytes = Encoding.ASCII.GetBytes(localIP);
udpClient.Send(sendBytes, sendBytes.Length, broadcastEndPoint);
counter++;
Thread.Sleep(5000);
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
udpClient.Close();
}
И следующий код для клиента:

Код: Выделить всё

    UdpClient udpClient = new UdpClient(11000);
string receivedData = null;
try
{
IPEndPoint receiveEndPoint = new IPEndPoint(IPAddress.Any, 11000);
byte[] receiveBytes = udpClient.Receive(ref receiveEndPoint);
receivedData = Encoding.ASCII.GetString(receiveBytes);
Console.WriteLine("Received broadcast from receiveEndPoint.ToString() : receivedData)\n");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
finally
{
udpClient.Close();
}
Когда хост и клиент запускаются на одной машине, всё работает корректно и пакеты доходят до клиента. Однако после того, как я попробовал запустить их на разных машинах, подключенных к одной локальной сети (режим модема на телефоне выступал в роли локальной сети), пакеты перестали приходить. Брандмауэр отключен на обеих машинах, поэтому понятия не имею, в чем может быть проблема.
Я пробовал отправить трансляцию на меньший диапазон (192.255.255.255), но это тоже не помогло . При попытке отладки клиента отладчик останавливается и программа перестает подавать какие-либо признаки жизни в строке полученных данных = Encoding.ASCII.GetString(receiveBytes). Надеюсь, кто-нибудь предложит решение

Подробнее здесь: https://stackoverflow.com/questions/784 ... at-runs-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»