title: Connect two client sockets
body: <p>Let's say Java has two kind of sockets:</p>
  
  <ul>
  <li>server sockets "ServerSocket"</li>
  <li>client sockets or just "Socket"</li>
  </ul>
  
  <p>Imagine the situation of two processes:</p>
  
  <p>X = Client<br>
  Y = Server</p>
  
  <p>The server process Y : has a "ServerSocket", that is listening to a TCP port<br>
  The client process X : sends a connection request through a "Socket" to Y.</p>
  
  <p>Y: Then the <code>accept()</code> method returns a new client type "Socket",<br>
  when it occurs, the two Sockets get "interconnected",</p>
  
  <p>So: the socket in client process, is connected with the socket in the server process.<br>
  Then: reading/writing through socket X is like reading/writing through socket Y.<br>
  Now, two <em>Client</em> Sockets get interconnected!!</p>
  
  <p>But...<br>
  What if I create the two Client sockets in same process,
  and I want to get them "interconnected" ?</p>
  
  <p>... even possible?</p>
  
  <p>Let's say how to have two client socket get interconnected without using an intermediate ServerSocket?</p>
  
  <p>I've solved it by creating two Threads for continuously reading A and writing B,
  and other for reading B and writng A...<br>
  But I think could be a better way...
  (Those world-energy-consuming threads are not necessary with the client-server approach)</p>
  
  <p>Any help or advice would be appreciated!! Thanks</p>
  
  <hr>
  
  <p><strong>Edit:</strong></p>
  
  <p>Example of application: "An existent server application could be converted to a client one",
  For example VNC server, one client socket connects to the VNC server, and other client socket is created (to connect to a middle server), then the application interconnects the two client resulting the VNC server is a client application! And then, no public IP is needed.</p>
  
  <p>VNCServer---MyApp---> |middle server| &lt;---User</p>