Historique des modifications - Message

Message #1707

Sujet: [raknet] reseau simple sans serveur


Type Date Auteur Contenu
Création du message 01-03-2007 00:34:29 ptitfred
Bonsoir

ah ben là c'est déjà plus simple!

Une méthode simple consiste à choisir 1 poste "serveur" et 1 poste "client" (disons respectivement le premier crée une partie, avec des parametres de configuration)

Avec les sockets, et de facon très concrète, le serveur va ouvrir une socket serveur, et le client va se connecter au serveur. Je ne vais pas t'expliquer les sockets et TCP/IP, il existe des solutions pour les manipuler dans tous les langages sérieux (et évidemment en C++ avec toutefois le bémol que ceci est dépendant du système pour ce langage).

Une fois la socket ouverte il n'y a "plus qu'à" échanger entre les programmes en écrivant et en lisant les sockets...

C'est une réponse bas niveau, au cas où tu voudrais t'attacher à ta propre implémentation.
Si tu n'es pas familiarisé avec les sockets, je te conseille de les apprivoiser en java au travers de petits tests pour mettre en place tes protocoles de discussion. Après en C++ pour l'intégration avec d'autres outils (typiquement un moteur graphique...).

Concernant Raknet, et d'après ce que j'en ai compris de leur présentation, il s'agit d'un moteur de communications UDP, c'est-à-dire en mode non connecté, avec pertes donc. C'est ce qui est utilisé pour les chats, les communications vocales et tout ce qui supporte de la perte mais le moins de gigue possible (la gigue est la variation du délai de transmission, concrètement ca déforme la voix, un peu à la manière de l'effet doppler). Elle propose aussi des fonctionnalités RPC (Remote Procedure Call), et donc offre une abstraction très poussée du réseau en permettant au programmeur de faire comme s'il appelait les fonctions directement mais dans une application distante ! Les amateurs noteront également les fonctionnalités de sécurisation, de routage et de multicast. Sans faire une étude approfondie de leur produit on peut se douter qu'il s'agit là d'une offre très complète.
Peut-etre un peu trop pour tes besoins immédiats.

Autant il est vrai qu'un projet sérieux (rien d'offensant, j'entends par là grosse équipe, structure commerciale...) ne peut pas se permettre de réinventer la roue pour chaque composant de son projet, autant un petit projet peut se le permettre et, d'après moi, doit se l'imposer pour maitriser les aspects techniques spécifiques afin de, plus tard, faire les bons choix dans l'utilisation de telle ou telle solution clef-en-main.

Enfin concernant les examples je ne les ai pas essayé mais un conseil: utilise de préférence gcc pour tester des produits au travers des exemples car tu t'épargneras les difficultés inhérentes aux IDE (DevCpp, CodeBlocks et bien sur l'innenarable Visual). La quasi totalité des applications open sources sont compilables avec gcc (je n'ai pas de contre exemple en tete). Par contre les IDE ne sont pas supportés systématiquement, et cela est simplement du au fait que chaque IDE requiert une fichier de configuration, souvent pour pas grand chose. A noter que DevCpp n'utilise rien d'autre que GCC comme compilateur.

Quoi qu'il en soit, que tu mettes les mains dans le camboui ou que tu utilises une bibliothèque tu auras besoin de te poser des questions sur ce que tu échanges entre tes 2 programmes et comment tu l'échanges : en un mot cela s'appelle le protocole.

La couche réseau d'une application demande beaucoup de travail de conception abstraite (sur le protocole) et un peu d'huile de coude pour la partie technique (ca c'est vrai pour tout dans ce métier). Mais il est important de noter que le plus gros du boulot (le protocole encore une fois) ne sera pas fait par une bibliothèque.

si ma réponse te parait non pertinente parce que ce n'est pas ce que tu cherches n'hésite pas à m'en faire part smile

bon courage car il en faut, ainsi que de la persévérance !

fred

PS: je te remercie au passage d'avoir fait référence à RakNet. Je ne cherchais pas de solution pour le réseau pour l'instant, mais je sais que j'en aurai besoin plus tard !

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
541 invités en ligne
membre en ligne: -
RSS Feed