Créer un jeu en réseau

cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007 - 20 mai 2006 à 16:29
cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007 - 24 mai 2006 à 09:53
Hello tous le monde !!

bon je vous expose mon probleme :
je souhaite créer un jeu, simple, lequel se jouera en réseau via internet, ou via un reseau local ne presentant pas de connexion internet.

il y a donc un systeme d'echange d'info géré grace a winSock,
comment fonctionne mon programme ?
     hé bien tout d'abord, lorsque l'utilisateur lance le jeu, il a le choix entre rejoindre un serveur, et en créer un.
        Si il en créé un, le nom, l'adresse IP internet ( et non locale) et le port du serveur sont ajoutés a une liste de serveurs presente sur mon site.
        Si il veut rejoindre un serveur, la liste est telechargée et il fait son choix.

J'espere simplement que lorsque qu'un serveur est dans un reseau local, les clients pourront s'y connécter (grace a l'IP et au port). je vien de me renseigné sur le NAT, et apparament, si je demande une connexion au routeur du reseau, sur un certain port (celui envoyé par le serveur), il redirige les requetes vers le PC correspondant.

autre probleme, si mon serveur est sur un PC directement connécté a internet, pas de soucis, adresse IP et Port sont corrects, donc les clients peuvent envoyer des données, mais si le client est sur un reseau, comment faire pour lui envoyer des données ? (j'avais pensé que le client enverrai son port et donc je pourai lui envoyer des données.)

et un dernier soucis, comment gerer le systeme client-serveur sur un reseau local sans connexion internet ?  comme pour les jeux en reseau, ou ils listent les serveurs présents sur le reseau, et je n'ai jamais compris comment ils font !!!
ou alors lister les IPs du reseau local, et tester les ports, j'en sais rien !

si vous avez une idée de comment gérer ça, avec ou sans winsock, par n'importe quelle maniere, je suis ouvert a tout !!!

merci !!!

gagou

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2006 à 16:59
Salut
Ouh la, beaucoup de question d'organisation.
Comme d'habitude, décompose tout se que tu as à faire, et mets les bout-à-bout :

- Comment marche un serveur NAT
Il n'est qu'une barrière entre Internet et le réseau local.
Il suffit de lui dire que, s'il reçoit une demande de connexion veant de l'internet sur le port X, il autorise et retransmette cette information à LA machine qui servira de serveur dont l'adresse IP locale est A.B.C.D et sur le port Y (en général, X et Y sont les mêmes)
Donc, paramétrage du serveir NAT obligatoire pour autoriser l'entrée sur un réseau

- Envoyer des données depuis internet vers une machine située sur un réseau local, derrière un routeur :
Le serveur NAT s'en occupe. Donc l'envoyeur n'a pas besoin de connaitre l'adresse IP locale de la machine.
Cela sous-entend qu'il ne peut y avoir qu'une seule machine derrière un routeur qui pourra recevoir ces données.

- IP locale, IP Internet
Une foultitude de sources sur le site permettent de retrouver son adresse IP dite "public".
Plusieurs techniques : Interroger un site internet qui te renverra sous forme de page html simple ton IP, ou interroger directement ton modem-routeur. Là, ça dépend beaucoup du type de routeur : programmation en fonction du routeur = pas pratique.

 - Protection :
Penser à configurer le parefeu - firewall de la machine : Il faut que le WinSock qui écoute soit autorisé --> Donner l'autorisation à ton application d'accéder au réseau et/ou de servir de serveur.

- Détection d'un Serveur sur un réseau local :
En général, il suffit de donner l'adresse IP du serveur, mais cette solution suppose que l'utilisateur sache ce que c'est qu'une IP et où la chercher.
Une solution consiste à utiliser le Broadcasting :
- Au démarrage, le serveur envoie une information UDP à destination du routeur pour dire "Si qqun cherche à me joindre sur le port X, me transmettre l'information", puis de se mettre en écoute UDP sur ce port.
- Quand le client veut faire une recherche de serveur, il lui suffit d'envoyer une demande UDP sur le réseau.
Le routeur retransmettra à toutes les machines cette demande, et le serveur la recevra. Il connaitra ainsi l'adresse IP du client qui cherche à le joindre.
Une fois cette information connue, ils n'ont plus qu'à se connecter sous TCP/IP (plus sûr car destinatiare unique)
J'ai donné un exemple de ce système de "recherche automatique de serveur" dans ce lien

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007
20 mai 2006 à 17:13
Merci beaucoup pour ta reponse Jack,

alors j'ai un copain qui m'a parlé du multicast, comme les jeux en réseau.

d'ailleurs comment font-ils pour envoyer des infos a chaque PC du réseau ?
c'est bien complexe tout ça... lol

merci !!

gagou
0
cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007
20 mai 2006 à 18:54
bon, apres m'etre renseigné sur le multicast, reste a savoir COMMENT créer un groupe !
en tout cas, si qqun sais comment faire, je suis toutes ouies !!!!!!

Gagou9
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2006 à 02:58
Re
Multicast - Broadcast : ça marche pareil, ça n'a pas la même étendue, c'est tout.
Si tu avais chargé la source dont je t'ai passé le lien + lu les commentaires, tu n'aurais pas posé la question.
Cette source est d'une simplicité d'utilisation : Il te suffit de choisir un port d'écoute et un nom d'application pour que le serveur reconnaisse la demande et y réponde. En réponse, il renvoie son IP --> Il n'y a plus qu'à se connecter !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2006 à 03:00
Extrait :
J'ai donné un exemple de ce système de "recherche automatique de serveur" dans ce lien  <=== click ici
0
cs_gagou9 Messages postés 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 novembre 2007
24 mai 2006 à 09:53
bonjour


excuse moi de pa avoir repondu vite mais j'etait au lycée.


j'ai telechargé la source, je regarderaéi ça !


 


merci,


a ce we !

Gagou
0
Rejoignez-nous