I'm wondering if the following solution is possible.
We have a simple model:
client_1 >> internet_provider_1 <<>> central_server <<>> internet_provider_2 << client_2
Both clients do NOT have a public ip. so, as I already have found out, to establish a connection between a client and a server a client needs to ask the server for connection. After the server accepts it, the data can be sent both sites through let's call it a "tunnel".
Now the question is if it's possible to merge the "tunnels" : client_1 <<>> server and client_2 <<>> server into one "tunnel" : client_1 <<>> client_2 so that the server would no more be necessary. I mean the connection between clients wouldn't be broken even it the server was shut down.
Can you recommend a c++ or c# library/class that would let me do this?
I would appreciate your help.