Côté serveur :

La classe qui permet de gérer un réseau s'appelle odfaeg::network::Network, cette classe permet de démarrer un serveur ou un client,
récupérer des informations tel que le ping, ainsi que les horloges clients.
Pour démarrer un serveur qui écoute sur les ports TCP et UDP (odfaeg utilise les deux protocoles) il faut appeler la méthode
statique startSrv de la classe odfaeg::network::Network.
Cette méthode attend deux paramètres, le premier est le port TCP sur lequel écouter et le second le port UDP.
Cette méthode est à appeler dans la méthode onInit() de votre application.
Une fois le serveur lancé, vous pouvez par exemple vérifier si un client à envoyé un message (une requête), pour cela il suffit d'utiliser
la méthode hasRequest de la classe odfaeg::network::Network.
Pour récupérer la dernière requête reçue par le serveur, il faut utiliser la méthode getLastRequest de la classe odfaeg::network::Network,
cette méthode renvoie la dernière requête reçue, et elle attend un paramètre qui est un double pointeur vers un objet de type
odfaeg::network::User qui n'est rien d'autre qu'un pointeur vers l'utilsiateur odfaeg qui à envoyé la requête.
(Ceci est utile si l'on souhaître répondre à l'utilisateur)


      User* user;
      std::string message = Network::getLastRequest(&user);
    

Maintenant si l'on souhaîte répondre à l'utilisateur, il y a deux possibilité, soit on lui envoie un packet en mode TCP,
de ce fait il faut utiliser un objet de type odfaeg::network::SymEncPacket (qui ne sont rien d'autre que des packets chiffré
avec la librairie openssl).


    SymEncPacket packet;
    packet<<"response";
    user->sendTcpPacket(packet);
    

Pour envoyer en udp, il faut utiliser un objet de type sf::Packet et la méthode sendUdpPacket.
Les packets envoyés en UDP ne sont donc pas chiffrés, n'envoyer donc jamais des données sensibles en udp tel que des mots
de passe par exemple, ayez donc bien celà en tête lorsque vous enverrai des données sur le réseau.
Si vous souhaîtes envoyer à tout les utilisateurs connecté au serveur, vous devez utiliser les méthodes sendTcpPacket
et sendUdpPacket de la classe odfaeg::network::Network.

côté client.

Pour démarer le client vous devez appeler la méthode startCli de la classe odfaeg::core::Network.


      Network::startCli(10'000, 10'001,sf::IpAddress::LocalHost);
    

Les deux premier paramètres sont les ports TCP et UDP du serveur auxquel on envoye les requêtes, et le derniers paramètre
est l'adresse IP du serveur vers lequel on souhaite envoyer des requêtes.
Pour envoyer une requête au serveur, il faut utiliser les méthodes sendTcpPacket et sendUdpPacket de la classe
odfaeg::network::Network.
Pour vérifier si le serveur à répondu, vous pouvez utiliser la méthode hasResponse de la classe odfaeg::network::Network.
Pour récupérer la dernière réponse reçue, il faut utiliser la méthode getLastResponse() de la classe odfaeg::network::Network.
Vous pouvez également récupérer une réponse bien précise du serveur, par exemple pour mettre à jour la position du
personnage d'un jeux, vous pouvez utiliser cette méthode.


      if (Network::getResponse("NEWPOS", response)) {
         //Mise à jour de la position du personnage.
      }
    

Cette méthode renvoie vrai si une réponse commençant par le tag "NEWPOS" a été reçue et stocke la réponse (sans le tag)
dans la variable passer en second paramètre.
Voila c'est tout en ce qui concerne ce chapitre, rien de bien compliquer, ODFAEG simplifie beaucoup la vie.