title: how do i find an available port before bind the socket with the endpoint?
body: <p>I'm developing a server-client application that uses 3 ports [TCP SOCKET .Net 4.0]..<Br>
  So the application gives the user the choice to set the port for the main socket only. but I want to let the server application to automatically find available port for the other 2 sockets so it sends the port value to the client using the main socket connection. then the client connect to the other socket using the received port value.</p>
  
  <p>here's a little explanation:<br>
  <li>the main socket listens on a configurable port. this socket accepts client to start send/receive commands. <b>(file explorer/task manager/properties/shutdown/chat)</b>
  <li>the second socket is for <b>file transfer</b> only to transfer files and it closes when its done.
  <li>the third socket is only for receive/send a <b>screenshot.</b><br></p>
  
  <p><i>[i know you might say that i should use the same socket for file transfer and screenshot but its a little complicated. i just use separate sockets for each one of them.]</i></p>
  
  <p>so how do i find an available port before bind the socket with the endpoint? something like this :</p>
  
  <pre><code>int port = 10000;
  bool isAvailable = false;
  while(!isAvailable)
  {
      try
      { 
          // check if the port is available to use.
          isAvailable = true;
      }
      catch
      {
          port++;
      }
  } 
  </code></pre>