Forum Programmation.c Trouver des serveurs
Dans pas mal de jeux ou d'autres applications réseau, on peut facilement obtenir une liste des serveurs actifs. Pour l'instant, j'update une liste d'ip sur mon ftp et je note son adresse dans un fichier de conf pour y accéder, mais ça ne me satisfait pas du tout : pas propre, pas sécurisé, pas évolutif... Comment ce genre de 'détection' se programme ?
# serveur central
Posté par nicodache . Évalué à 3.
c'est possible ca comme explication ?
[^] # Re: serveur central
Posté par JaguarWan . Évalué à 1.
[^] # Re: serveur central
Posté par nicodache . Évalué à 3.
ca peut etre sympa, mais pitet un peu lourd juste pour maj un fichier qui contient l'url du serveur :D
[^] # Re: serveur central
Posté par Krunch (site web personnel) . Évalué à 3.
Pourquoi ne pas utiliser un DNS qui peut changer facilement, genre DynDNS, No-IP ou FreeDNS (je suppose qu'il y a moyen de se passer d'eux pour ça mais c'est probablement le plus facile) ? Tu gardes un serveur central mais son adresse IP peut changer facilement sans problème. Une autre idée est d'utiliser un chan IRC sur un serveur publique comme le fait netPanzer. Evidemment faut pas changer de chan ni de réseau IRC (comme l'a fait netPanzer aussi)...
Si tu veux vraiment décentraliser, doit y avoir moyen aussi. Essai de voir comment fonctionnent les réseaux P2P et d'appliquer...
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: serveur central
Posté par LeMagicien Garcimore . Évalué à 3.
L'utilisation d'irc pose des problème. Par exemple on a été viré de freenode car l'usage des bot n'y est pas bien vu. Pour la p'tite histoire un admin de freenode est passé sur le chan, a essayé de disctuter avec les clients netpanzer connectés. Quand il s'est rendu compte que c'était des bots, il a kické tout le monde :/ On a bougé vers quakenet, mais bon, l'irc c'est fait pour discuter, pas pour servir de meta serveur.
Si tu veux, passe sur #netpanzer sur freenode et demande à MatzeB, c'est lui qui est en train de dev le nouveau système de meta serveur.
[^] # Re: serveur central
Posté par Krunch (site web personnel) . Évalué à 2.
Evidemment c'est clair qu'il vaut mieux que les admins du réseau IRC concerné soient d'accords mais pourquoi ne pas monter son propre réseau IRC dédié à cela plutôt que de s'amuser à réinventer un nouveau protocol ?
Au fait, c'est moi ou ya jamais personne sur le meta serveur netPanzer ? :)
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: serveur central
Posté par LeMagicien Garcimore . Évalué à 2.
[^] # Re: serveur central
Posté par Krunch (site web personnel) . Évalué à 3.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: serveur central
Posté par Sebastien . Évalué à 2.
Attention je crois que c'est breveté :P
Je me demandais, c'est pitêtre pas super intelligent, mais comme à priori c'est juste un fichier à lire : le faire via AFS avec authentification Kerberos?
Avec les ACL quivontbien, c'est sécurisé... Plusieurs sites/serveurs ? Plusieurs répertoires dans le cache AFS...
Mais c'est peut-etre utiliser la grosse artillerie pour pas grand chose...
# systeme decentralisé
Posté par Bemixam (site web personnel) . Évalué à 3.
- chaque serveur renvoi sa liste quand on lui demande
- chaque serveur demande regulierement aux autres serveurs leurs listes
il me semble que les serveurs emule fonctionne comme ca
sinon on peut voir un systeme "a la DNS" avec un fichier liste auquel ont attribu un "numero de serie" qui s'incremente a chaque modif, les serveurs interrogant regulierement les autres pour obtenir la derniere version.
[^] # Re: systeme decentralisé
Posté par JaguarWan . Évalué à 1.
Pour l'initialisation du système, un serveur public est déclaré (genre DynDNS).
Chaque fois qu'un client se connecte, il envoie aussi la liste des serveurs qu'il connait à celui auquel il se connecte.
Le serveur lui envoie aussi une liste de serveurs.
Régulièrement, un serveur questionne tous les serveurs de sa liste pour compléter la sienne et les leurs.
Résultat :
* Pour peu qu'un client ait une IP serveur valable, il peut en trouver plein d'autres.
* Globalement, au bout d'un certain temps, les serveurs devraient tous se synchroniser et avoir plus ou moins la même liste.
[^] # Re: systeme decentralisé
Posté par Krunch (site web personnel) . Évalué à 2.
Pour l'idée du serial comme pour les DNS, ça impliquerait qu'il y ai un serveur maitre unique pour qu'on ne se retrouve pas avec le même serial pour deux listes différentes. Pas vraiment une bonne idée à mon avis.
Quand j'y pense je me dis qu'un réseau IRC c'est encore la moins mauvaise solution si tu veux une liste fiable et à jour:
Le client télécharge une liste de meta serveurs IRC (ça peut se faire en une seule requète DNS) et se connecte à l'un d'eux aléatoirement puis rejoint un chan prédéfini. Un bot lui donne la liste des serveurs de jeux connus à son arrivée sur le chan. Quand un client se connecte à un serveur, il quitte le chan (et éventuellement le serveur). Quand un serveur est crée, il se connecte aussi au réseau IRC, rejoint un autre chan et signale aux bots des meta serveurs qu'il est un serveur. Un des meta serveurs vérifie qu'il y a bien un serveur à son adresse. Si c'est pas le cas, il kick le serveur du réseau. Si c'est le cas, il l'annonce sur le chan des joueurs, tout le monde met sa liste à jour et le serveur rejoint le chan des joueurs. Quand un serveur se déconnecte, tout le monde le retire de sa liste. Si un client n'arrive pas à se connecter à un des serveurs, il l'annonce sur un troisième chan et si ça n'a pas été fait depuis X secondes, un des bots vérifie l'état du serveur (réponse au client uniquement si le serveur existe, kick du serveur sinon).
Je crois que c'est la meilleure manière d'avoir une liste fiable vraiment à jours en consommant un minimum de bande passante pour tout le monde sans s'amuser à réecrire un protocole complet (je veux dire en utilisant directement TCP ou UDP). Enfin je ne connais pas vraiment le protocol IRC non plus donc il y a peut-être quelque chose qui m'échappe qui rende mon idée totalement inefficace.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.