C # - не может получить UDP на втором компьютере - PullRequest
0 голосов
/ 17 июня 2019

Я могу отправлять UDP-сообщения от одного компьютера к себе через определенный порт, но не могу отправлять эти сообщения с одного компьютера на другой в той же локальной сети. Я довольно новичок в C # и я также новичок в сетевом программировании, поэтому решение, вероятно, легко ...

Я попробовал пример из Microsoft Docs и сделал только небольшие изменения. (имена и т. д.)

Оба кода работают как отдельные программы.

//RECEIVE
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPListener
{
private const int listenPort = 11000;

private static void Listen()
{
    UdpClient listener = new UdpClient(listenPort);
    IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);

    try
    {
        while (true)
        {
            Console.WriteLine("Waiting for broadcast");
            byte[] receivebytes = listener.Receive(ref groupEP);

            Console.WriteLine(Encoding.ASCII.GetString(receivebytes, 0, receivebytes.Length));
        }
    }
    catch (SocketException e)
    {
        Console.WriteLine(e);
    }
    finally
    {
        listener.Close();
    }
}

public static void Main()
{
    Listen();
}
}
 //SEND
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

class Program
{
static void Main(string[] args)
{
    Socket socket = new Socket(AddressFamily.InterNetwork,        SocketType.Dgram, ProtocolType.Udp);

    //192.168.2.5 is the IP Address of the receiving computer
    IPAddress broadcast = IPAddress.Parse("192.168.2.5");

    byte[] bytestosend = Encoding.ASCII.GetBytes("Hi");
    IPEndPoint ep = new IPEndPoint(broadcast, 11000);

    socket.SendTo(bytestosend, ep);

    Console.WriteLine("bytestosend were send");
}
}

Отправляющая программа сообщает мне, что сообщение было отправлено, но принимающая программа не выводит.

РЕДАКТИРОВАТЬ 1: Менеджер ресурсов Ressource сказал, что на принимающем компьютере не было сетевой активности, в то время как на отправляющем компьютере фактически что-то отправляет.

РЕДАКТИРОВАТЬ 2: я пытался мои приложения в другой сети, и она работала нормально. Я провел некоторое исследование и обнаружил, что иногда маршрутизаторы не разрешают широковещательные рассылки через подсеть (или что-то подобное ...). Поэтому я предполагаю, что это может быть мой маршрутизатор. (к сожалению, я не могу получить доступ к его настройкам.) Так что я думаю, что проблема решилась сама собой!

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