Forum de la communauté SFML

Aide => Réseau => Discussion démarrée par: CatEndal le Octobre 21, 2017, 01:38:34 pm

Titre: [Résolu] Les packets n'envoient qu'une seule information
Posté par: CatEndal le Octobre 21, 2017, 01:38:34 pm
Bonjour
Je souhaite envoyer la position d'un objet ( appelons le "rect" ). j'utilise pour cela des
sf::TcpSocket
et des
sf::Packet
Lorsque j'envoie la position, je fais ceci
 //coté "serveur"
packet << posX << posY;
client.send(packet);

//coté "client"
serveur.receive(packet);
packet >> posX >> posY;
std::cout << posX << posY << std::endl;
 
La première position (disons 50, 50) est bien envoyée, mais lorsque j'actualise la position, le client affiche toujours 50, 50.

J'ai relu les tutos, mais je ne vois pas d'où viens mon erreur.
Merci


Titre: Re: Les packets n'envoient qu'une seule information
Posté par: Laurent le Octobre 21, 2017, 01:44:42 pm
Est-ce que tu réutilises toujours la même instance de sf::Packet pour l'envoi ? Si c'est le cas ne le fais pas :)
Titre: Re: Les packets n'envoient qu'une seule information
Posté par: CatEndal le Octobre 21, 2017, 01:46:47 pm
Alors comment je fais si je veut envoyer la position ditons tous les 20 ms ?
Titre: Re: Les packets n'envoient qu'une seule information
Posté par: CatEndal le Octobre 21, 2017, 01:49:16 pm
Je peut peut être essayer une fonction qui envoie le packet et qui du coup supprime le packet à la fin de l'appel de la fonction ?
Titre: Re: Les packets n'envoient qu'une seule information
Posté par: CatEndal le Octobre 21, 2017, 02:01:47 pm
C'est bon ça marche merci
Titre: Re: [Résolu] Les packets n'envoient qu'une seule information
Posté par: Laurent le Octobre 21, 2017, 05:07:07 pm
Il n'y a aucune raison de garder des paquets de manière persistante et de les réutiliser. Déclares-en (de manière locale et non-persistante donc) uniquement à l'endroit où tu veux faire l'envoi.