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 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 ! |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
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 |