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

Auteur Sujet: [SFML 2.0] Problème socket TCP  (Lu 2279 fois)

0 Membres et 1 Invité sur ce sujet

Tyr

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
[SFML 2.0] Problème socket TCP
« le: Décembre 17, 2013, 03:44:37 pm »
Hello,

le titre n'est pas exact en ce sens que le problème vient certainement de moi, mais voici mon soucis :
Je cherche à envoyer un message d'un client vers un serveur (deux programmes différents) en réseau local (pour le moment !), càd entre deux postes connectés à une même box.
Je tiens à préciser tout de suite que je suis nul en réseau. ^^"
Lorsque le client et le serveur tournent sur la même machine, tout se passe bien ; en revanche, lorsqu'il s'agit de postes séparés, le serveur de ne reçoit rien.

Voici le code (très simpliste, en guise de tests) :

client :
int main()
{
        unsigned short port = 53000;
        Packet packet;
        string message = "Message de test";
        packet << message;

        TcpSocket socket;
        TcpSocket::Status status = socket.connect(IpAddress::getLocalAddress(), port);
        if (status != TcpSocket::Done)
        {
                cout << "Status != Done" << endl;
        }

        if (socket.send(packet) != Socket::Done)
        {
                cout << "socket.send != Done" << endl;
        }

    socket.disconnect();
        return 0;
}

serveur :
int main()
{
        cout << "En attente du client..." << endl;

        TcpListener listener;
        if (listener.listen(53000) != sf::Socket::Done)
        {
                cout << "listener.listen != Done" << endl;
        }

        TcpSocket client;
        if (listener.accept(client) != sf::Socket::Done)
        {
                cout << "listener.accept != Done" << endl;
        }

        Packet packet;
        client.receive(packet);

        string data;
        packet >> data;
        size_t received = sizeof(data);

        std::cout << "Reçu " << received << " bytes : " << data << std::endl;
    listener.close();
        return 0;
}

Quel est donc le problème ?
Merci d'avance !

Tyr

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : [SFML 2.0] Problème socket TCP
« Réponse #1 le: Décembre 17, 2013, 11:16:00 pm »
Alors, j'ai trouvé pour le réseau local, il suffisait de faire :
socket.connect(IpAddress("nom de l'ordinateur cible"), 54000);

Cependant, comment cela marche-t-il en WAN ?
Merci d'avance.
« Modifié: Décembre 18, 2013, 12:04:46 pm par Tyr »

 

anything