I am developing a chat application (in VB.Net). It will be a "safe" chat program. All traffic will be encrypted (I also need to find a better approach for this, but at the moment this is not a question).
The program is currently running. I have a server application and a client application. However, I want to configure the application so that it does not need a central server for it to work.
What approach can be taken to decentralize the network?
I think I need to develop clients so that they also act as a server.
How do clients know which server they need to connect to / what will happen if the server is down? How will clients / servers now have other nodes on the network without a central server?
In the best case, I do not want clients to know which IP addresses different nodes have, however I do not think that this would be possible without a central server.
As indicated, the application will be written in VB.Net, but I think that at the moment the language does not really matter.
I just want to know the different approaches that I can follow.
source
share