You basically need a server (well, you donβt need a server, but it will be much easier) that will store user IPs between other things, such as hash lists of files, etc.
This server can be in any environment that you want (which is very convenient).
Then each client connects to the server (it must have dns, it can be free, I used no-ip.com once) and first sends the main information (for example, its IP address and hash list file), and then sends that from time to time (say, every 5 minutes or less) to let you know that it is still available.
When a client searches for files / users, it simply requests a server.
This is a centralized network , but file sharing will be performed on p2p client-client connections.
The reason for this is because you cannot know the IP to connect without any link.
Just clear this server thing:
- Torrents use trackers.
- eMule ED2K uses lugdunum servers.
- eMule "true p2p" Kademlia uses well-known nodes (clients) (most of the time from servers like this ).
Camilo martin
source share