title: is it possible to have multiple UDP c# sockets with same localEndPoint?
body: <p><br>
  I wrote a TCP client/server code that works fine. a TCP socket listener accept connections and create many sockets with same localEndPoint and various RemoteEndPoint. now I like to expand to UDP but I have a problem in seerver code. i must bind UDP socket to a localEndPoint for each client object. but I encounter an error: I can't bind multiple UDP sockets with same localEndPoint. I found that is nature of UDP sockets according to <a href="https://en.wikipedia.org/wiki/Network_socket" rel="nofollow noreferrer">Wiki</a>:</p>
  
  <blockquote>
    <p>A UDP server does not create new child processes for every concurrently served client, but the same process handles incoming data packets from all remote clients sequentially through the same socket. It implies that UDP sockets are not identified by the remote address, but only by the local address, although each message has an associated remote address.</p>
  </blockquote>
  
  <p>so <strong>can I create a distinct UDP socket for each Client like I do for TCP sockets?</strong><br>
  note: please explain with <code>socket</code> class if possible not <code>UDPClient</code> class.</p>
  
  <pre><code>    private void SocketAsyncEventArgs_Completed(object sender, SocketAsyncEventArgs e)
      {
          if (e.SocketError == SocketError.Success)
          {
              switch (e.LastOperation)
              {
                  case SocketAsyncOperation.Accept:
                  case SocketAsyncOperation.Connect:
                      UDP.Bind(TCP.LocalEndPoint);
  </code></pre>
  
  <p>code explanation: I thought I can bind a UDP socket in both sides (client/server) after establishing  TCP connection (connect/accept). it is fine for only one client on server. for new clients server throws an Exception because it can't bind multiple sockets with one localEndPoint . and clients can be more than all available ports. so i can't bind a UDP socket to a distinct localEndPoint for each client.<br>
  I knew that i can create a unique UDP socket and pass receiving messages to respective client object on server but its a bit nasty. thanks!</p>