Bonjour à tous !
Tout d'abord, j'ai ce code:
#include <SFML/Network.hpp>
#include <iostream>
void treat(sf::UdpSocket *server)
{
server->setBlocking(true);
sf::IpAddress ip;
sf::Uint16 port;
sf::Packet mPacket;
server->receive(mPacket, ip, port);
std::string str;
mPacket >> str;
std::cout << "Recevived from " << ip << ": " << str << std::endl;
}
int main()
{
std::cout << "Connecting server..." << std::endl;
sf::UdpSocket server, client;
sf::IpAddress address;
sf::Thread thread(&treat, &server);
server.bind(5000);
thread.launch();
std::cout << "Enter address: ";
std::cin >> address;
sf::Packet packet;
packet << std::string("Hello World !");
client.send(packet, address, 5000);
}
qui me donne cette sortie:
Connecting server...
Enter address: 127.0.0.1
Recevived from 127.0.0.1: Hello World !
Appuyez sur une touche pour continuer...
Le problème, c'est que au moment de recevoir le message, j'ai le droit à une Message Box qui m'indique:
Run-Time Check Failure #2 - Stack around the variable 'mPacket' was corrupted.
De plus, en regardant le debugger, m_isValid des packets se trouve parfois à false ; et la read_pos se trouve à une nombre absolument immense, comme plus de 3 millions par exemple.
Donc j'ai beau eu chercher sur internet la signification du message, je n'ai rien trouvé. J'utilise Windows 7, SFML 2.0 RC et Visual Studio 2012.
Merci d'avance