title: UDP Listener respond to client
body: <p>I found this great code on MSDN for a UDP Client/Server connection, however the client can only send to the server, it cant reply back. How can I make this so the server can respond to the client that send the message.
  The Server</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Net;
  using System.Net.Sockets;
  using System.IO;
  using System.Security.Cryptography;
  
  
  namespace UDP_Server
  {
      class Program
      {
          private const int listenPort = 11000;
  
          private static void StartListener()
          {
              bool done = false;
  
              UdpClient listener = new UdpClient(listenPort);
              IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
              try
              {
                  while (!done)
                  {
                      Console.WriteLine("Waiting for broadcast");
                      byte[] bytes = listener.Receive(ref groupEP);
                      Console.WriteLine("Received broadcast from {0} :\n {1}\n",groupEP.ToString(), Encoding.ASCII.GetString(bytes, 0, bytes.Length));
                  }
              }
              catch (Exception e)
              {
                  Console.WriteLine(e.ToString());
              }
              finally
              {
                  listener.Close();
              }
          }
  
          public static int Main()
          {
              StartListener();
  
              return 0;
          }
      }
  
  }
  </code></pre>
  
  <p>And the client</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Net;
  using System.Net.Sockets;
  using System.IO;
  using System.Security.Cryptography;
  
  namespace UDP_Client
  {
      class Program
      {
          static void Main(string[] args)
          {
              Send("TEST STRING");
              Console.Read();
          }
          static void Send(string Message)
          {
              Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
              IPAddress broadcast = IPAddress.Parse("10.1.10.117");
              byte[] sendbuf = Encoding.ASCII.GetBytes(Message);
              IPEndPoint ep = new IPEndPoint(broadcast, 11000);
              s.SendTo(sendbuf, ep);
          }
      }
  }
  </code></pre>