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!!
But...
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
Edit:
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