Search code examples
c#udp

How to do Network discovery using UDP broadcast


I want to to do network discovery using UDP Broadcast in C#. I don't know how to do this. Can you give me advice on how to do it?

I want to do like this tutorial.


Solution

  • It's very simple to make same thing in C#

    Server:

    var Server = new UdpClient(8888);
    var ResponseData = Encoding.ASCII.GetBytes("SomeResponseData");
    
    while (true)
    {
        var ClientEp = new IPEndPoint(IPAddress.Any, 0);
        var ClientRequestData = Server.Receive(ref ClientEp);
        var ClientRequest = Encoding.ASCII.GetString(ClientRequestData);
    
        Console.WriteLine("Recived {0} from {1}, sending response", ClientRequest, ClientEp.Address.ToString());
        Server.Send(ResponseData, ResponseData.Length, ClientEp);
    }
    

    Client:

    var Client = new UdpClient();
    var RequestData = Encoding.ASCII.GetBytes("SomeRequestData");
    var ServerEp = new IPEndPoint(IPAddress.Any, 0);
    
    Client.EnableBroadcast = true;
    Client.Send(RequestData, RequestData.Length, new IPEndPoint(IPAddress.Broadcast, 8888));
    
    var ServerResponseData = Client.Receive(ref ServerEp);
    var ServerResponse = Encoding.ASCII.GetString(ServerResponseData);
    Console.WriteLine("Recived {0} from {1}", ServerResponse, ServerEp.Address.ToString());
    
    Client.Close();