title: Establishing multiple TCP connections simultaneously
body: <p>My understanding of TCP in Java is that, while you can multithread handling data transmissions on a socket, you can only establish one connection at a time. Is this true? If not, how would you implement a server that can establish multiple connections simultaneously on the same address and port.</p>
  
  <p>i.e If a client was to try and establish a connection to the server, but is connecting over a very unstable network, would the server have to wait for the connection handshake to complete before being able to accept a connection from another client?</p>