Bonjour
Je ssuis nouveau avec RakNet et un peu moins en C++ mais j'ai une erreur C++
J'essaie d'avoir une classe avec une propriété RakServerInterface *.
Mais j'ai une erreur à l'initialisation. La propriété server n'est pas définie.
Je suis parti du Chat example.
Voisi mes fichiers :
MyServer.h
#include "PacketEnumerations.h" #include "RakNetworkFactory.h" #include "RakServerInterface.h" #include "NetworkTypes.h" #include "BitStream.h" #include <assert.h> #include <cstdio> #include <cstring> #include <stdlib.h> #include <conio.h> #include <windows.h> // Sleep class CMyServer { public: CMyServer(void); RakServerInterface * server; public: virtual ~CMyServer(void); }
MyServer.cpp
#include "MyServer.h" CMyServer::CMyServer(void) { RakServerInterface * server = RakNetworkFactory::GetRakServerInterface(); //::GetRakServerInterface(); server->InitializeSecurity(0,0); int i = server->GetNumberOfAddresses(); server->SetPassword("Socrate"); // Record the first client that connects to us so we can pass it to the ping function PlayerID clientID=UNASSIGNED_PLAYER_ID; // A server puts("Enter the server port to listen on"); gets(portstring); if (portstring[0]==0) strcpy(portstring, "10000"); puts("Enter the server name (up to 40 characters)"); gets(enumerationDataStruct.serverName); if (enumerationDataStruct.serverName[0]==0) strcpy(enumerationDataStruct.serverName, "Default server name"); puts("Enter the server message of the day (up to 50 characters)"); gets(enumerationDataStruct.MOTD); if (enumerationDataStruct.MOTD[0]==0) strcpy(enumerationDataStruct.MOTD, "Default MOTD"); // Note this passes by value, because otherwise people could get access // to and damage our internal data server->SetStaticServerData((char*)&enumerationDataStruct, sizeof(EnumerationDataStruct)); puts("Starting server."); } CMyServer::~CMyServer(void) { }
And my main file :
main.cpp
#include "PacketEnumerations.h" #include "RakNetworkFactory.h" #include "RakServerInterface.h" #include "NetworkTypes.h" #include "BitStream.h" #include <assert.h> #include <cstdio> #include <cstring> #include <stdlib.h> #include <conio.h> #include <windows.h> // Sleep #pragma comment(lib, "RakNetDLL.lib") int main (void) { CMyServer* aServer = new CMyServer(); // OK but aServer->server not defined bool b = aServer->server->Start(32, 0, 30, atoi(aServer->portstring)); if (b) puts("Server started, waiting for connections."); else { puts("Server failed to start. Terminating."); exit(1); } }
L'erreur est à aServer->server->Start où aServer->server n'est pas défini
Pourriez-vous m'aider svp?
Hors ligne
salut
Je suis pas un expert mais le probleme vient surement du fait que tu redeclare server dans le constructeur donc il est limite a la portée
voila
a +
dark calculator
Dernière modification par dark calculator (08-05-2007 21:06:51)
Hors ligne
MABB :
Je suis nouveau avec RakNet et un peu moins en C++ mais j'ai une erreur C++
Salut,
bon, je sais pas pourquoi ton programme plante, mais j'aimerai bien lancer le débat sur Raknet
Pourquoi ce choix ?
A mes yeux Raknet a beaucoup de points négatifs :
1 - ce n'est pas libre, ..
2 - c'est pas gratuit
3 - c'est de l'udp, j'imagine qu'un jeu s'apparente a du streaming (pour lequel ca ne sert a rien de réémettre un paquet qui arrive trop tard) mais pouvoir aussi fonctionner en tcp me parait un plus
Alors, pourquoi Raknet ?
j'attends vos points positifs
ps : vive les troll !
Hors ligne
Moi je sais pour l'udp au moins .
C'est surtout que l'udp est très nettement plus rapide que le tcp, son seul inconvénient est qu'il ne garanti pas l'arrivé des paquets.
Donc si tu veux faire un jeux de course en tcp tu vas vite être embété pour gérer le delai que t'aurra entre le moment ou le paquet a été envoyé et le moment ou le paquet sera reçu (on appele ça la latence pour ceux qui savent pas).
Raknet c'est gratuit à condition de ne pas commercialiser son produit.
Et ensuite il me semble si je dis pas de connerie que raknet s'occupe justement du temps de latence pour les paquets.
Voilou @++ ^^
Hors ligne
Copland :
Moi je sais pour l'udp au moins .
C'est surtout que l'udp est très nettement plus rapide que le tcp, son seul inconvénient est qu'il ne garanti pas l'arrivé des paquets.
oui c'est pour ca que je parle de streaming dans mon post, c'est un peu la meme technique, mais tant qu'a utiliser une lib, j'aime autant qu'elle fasse les deux, non ? par exemple pour un chargement de map, un trasfert de données ou autre, c'est bcp mieux
Copland :
Raknet c'est gratuit à condition de ne pas commercialiser son produit.
ben justement pourquoi implanter une telle limitation a la base du projet ?
Hors ligne
@ dark calculator : oui effectivement mon serveur est à porté limité. J'ai résolu le problème en l'initialisant un peu plus tard hors du constructeur.
@ Jerry Kan : j'ai choisi RakNet pour les raisons évoquées par Copland. L' udp pour la plus part des MMO est de rigeur. RakNet est assez simple de prose en main et pas forcément très cher pour un produit commercial (ce qui n'est pas d'actualité pour mon jeu). De plus faire son propre serveur est long. Et puis avec l'udp il y a toujours moyen de savoir si les messages ont été reçu et sinon de recommencer jusqu'à ce que.
Hors ligne
salut a tous
moi j'ai trois soucis 2 avec rackent et 1 autre avec la fusion des class avec irrlicht
mon probléme de fusion est que j'ai créé un bouton avec irrlicht et dans une class mais la partie qui construit le bouton je l'est mis das une méthode que j'appel en dehort de la boucle et la partie qui créé l'événement dans une autre méthode pour ellle l'appelé dans la boucle mais le probléme c'est que j'ai bien le bouton je peut clicket dessus mais aucun événement ne se passe alor que quand je programme en un seul fichier cpp (main.cpp) sa marche
mes deux probléme avec raknet sont
1) quand je programme en seul fichier et que je créé le bouton que je vous parlé plus haut l'événement est d'envoyé 3 paquet mais seulement 2 arrive
2)pouvez vous me dire comment envoyé une chaine de caractére du serveur au client svp car la je séche
dans l'atente de votre aide je vous souhaite une bonne journée
chris
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 45 invités en ligne Aucun membre connecté RSS Feed |