Forum de la communauté SFML

Aide => Réseau => Discussion démarrée par: Vivien le Janvier 31, 2015, 04:59:34 pm

Titre: SFML NETWORK Erreur status du stocket
Posté par: Vivien le Janvier 31, 2015, 04:59:34 pm
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.
Titre: Re : SFML NETWORK Erreur status du stocket
Posté par: Laurent le Janvier 31, 2015, 07:43:28 pm
Utilise SFML 2.2, de nombreux bugs ont été corrigés.
Titre: Re : SFML NETWORK Erreur status du stocket
Posté par: Vivien le Janvier 31, 2015, 11:41:49 pm
D'accord je vais réessayer avec Sfml 2.2.