Bonjour,
Essayant de comprendre le module réseau avec SFML 2.1 en TCP, j'ai réalisé un bout de programme pour tester.
Mais le sf::Socket::Status retourne 3 ce qui correspond à la variable Error (
http://www.sfml-dev.org/documentation/2.1-fr/classsf_1_1Socket.php)
Le stocket à comme destinataire mon propre ordinateur.
Donc avez vous une idée d'ou cela peut provenir?
#include <SFML/SFML/Network.hpp>
#include <iostream>
using namespace sf;
void client_run();
void serveur_run();
int main()
{
std::cout<<"Start\n1=client\n2=serveur\nVotre choix:";
int client_ou_serveur(0);
std::cin>>client_ou_serveur;
if (client_ou_serveur == 1)
{
client_run();
}
else if (client_ou_serveur == 2)
{
serveur_run();
}
return EXIT_SUCCESS;
}
void client_run()
{
std::cout<< "Entrer dans client.\n";
sf::TcpSocket socket;
sf::Socket::Status status = socket.connect(sf::IpAddress::LocalHost ,53003, sf::seconds(5));
if (status != sf::Socket::Done)
{
std::cout<< "Erreur de status du stocket.\n" << status << std::endl;
//ici status = 3
}
char data[10] = "123456789";
if (socket.send(data, 10) != sf::Socket::Done)
{
std::cout<< "Erreur d'envoie du stocket.\n";
}
std::cout<< "Sortie de client.\n";
}
void serveur_run()
{
std::cout<< "Entrer dans serveur.\n";
sf::TcpListener listener;
if (listener.listen(53000) != sf::Socket::Done)
{
std::cout<< "Erreur de du listener à listen.\n";
}
sf::TcpSocket client;
if (listener.accept(client) != sf::Socket::Done)
{
std::cout<< "Erreur de du listener à accept.\n";
}
char data[10];
std::size_t received;
if (client.receive(data, 10, received) != sf::Socket::Done)
{
// erreur...
}
std::cout << "Received " << received << " bytes" << std::endl;
std::cout<< "Sortie de serveur.\n";
}
Merci d'avance de votre aide.