Let's say Java has two kind of sockets:
- server sockets "ServerSocket"
- client sockets or just "Socket"
Imagine the situation of two processes:
X = Client
Y = Server
The server process Y : has a "ServerSocket", that is listening to a TCP port
The client process X : sends a connection request through a "Socket" to Y.
Y: Then the
accept() method returns a new client type "Socket",
when it occurs, the two Sockets get "interconnected",
So: the socket in client process, is connected with the socket in the server process.
Then: reading/writing through socket X is like reading/writing through socket Y.
Now, two Client Sockets get interconnected!!
What if I create the two Client sockets in same process, and I want to get them "interconnected" ?
… even possible?
Let's say how to have two client socket get interconnected without using an intermediate ServerSocket?
I've solved it by creating two Threads for continuously reading A and writing B, and other for reading B and writng A…
But I think could be a better way… (Those world-energy-consuming threads are not necessary with the client-server approach)
Any help or advice would be appreciated!! Thanks
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.
VNCServer—MyApp—> |middle server| <—User