Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: SFML NETWORK Erreur status du stocket  (Lu 1588 fois)

0 Membres et 1 Invité sur ce sujet

Vivien

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
SFML NETWORK Erreur status du stocket
« 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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : SFML NETWORK Erreur status du stocket
« Réponse #1 le: Janvier 31, 2015, 07:43:28 pm »
Utilise SFML 2.2, de nombreux bugs ont été corrigés.
Laurent Gomila - SFML developer

Vivien

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : SFML NETWORK Erreur status du stocket
« Réponse #2 le: Janvier 31, 2015, 11:41:49 pm »
D'accord je vais réessayer avec Sfml 2.2.