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

Auteur Sujet: [resolut]Packet tcp qui ne veut pas partir  (Lu 1372 fois)

0 Membres et 1 Invité sur ce sujet

leenheart

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
    • E-mail
[resolut]Packet tcp qui ne veut pas partir
« le: Août 30, 2016, 01:44:02 pm »
Je suis débutant  :). J'ai coder un serveur et un client. Le client arrive a se connecter je l'enregistre tout va bien, mais lorsque je veux que le serveur envoie un packet celui ci ne part jamais. Si quelqu'un peut m'aider je le remercie d'avance  :).
[
serveur:

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

while (window.isOpen())  //tant que la fenetre est ouverte
    {
        sf::Event event;
        while (window.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)    // si on clique sur la croix ferme la fenetre
                    window.close();
            }
//serveur
            sf::TcpSocket client1;
            sf::TcpSocket client2;
            sf::TcpSocket client3;
            sf::TcpSocket client4;
            sf::TcpSocket client5;
            switch(nbrClient)
            {
            case 0:
                if (listener.accept(client1) == sf::Socket::Done)
            {
                nbrClient+=1;
                cout << "nouveau client connecter ! " << endl;
            }
            break;

            case 1:
                if (listener.accept(client2) == sf::Socket::Done)
            {
                nbrClient+=1;
                cout << "nouveau client connecter ! " << endl;
            }
            break;
            case 2:
                if (listener.accept(client3) == sf::Socket::Done)
            {
                nbrClient+=1;
                cout << "nouveau client connecter ! " << endl;
            }
            break;
            case 3:
                if (listener.accept(client4) == sf::Socket::Done)
            {
                nbrClient+=1;
                cout << "nouveau client connecter ! " << endl;
            }
            break;
            case 4:
                if (listener.accept(client5) == sf::Socket::Done)
            {
                nbrClient+=1;
                cout << "nouveau client connecter ! " << endl;
            }
            break;
            }

if (envoiNewMap)
                {
                    cout << "envoie map activer" << endl;
for (int i(0); i <= nbrClient; ++i)
        {
             cout << i << endl;

                sf::Packet packet;
                string mapp("mapChanger");
                packet << mapp;
                sf::Packet packett;
                packett << fileMap;

            switch(i)
            {
            case 0:
                cout << "case 0" << endl;
                break;
            case 1:
                 cout << "case 1" << endl;
                if (client1.send(packet) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 1" << endl;
                }
                else
                {
                    i -= 1;
                    cout << "rater";
                }
                if (client1.send(packett) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 1"  << endl;
                }
            break;
            case 2:
                if (client2.send(packet) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 2" << endl;
                }
                else
                {
                    cout << "rater";
                }
                if (client2.send(packett) == sf::Socket::Done)
                {
                    cout << "packet renvoyer au client numero 2"  << endl;
                }
            break;
            case 3:
                if (client3.send(packet) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 3" << endl;
                }
                else
                {
                    cout << "rater";
                }
                if (client3.send(packett) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 3"  << endl;
                }
            break;
            case 4:
                if (client4.send(packet) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 4" << endl;
                }
                else
                {
                    cout << "rater";
                }
                if (client4.send(packett) == sf::Socket::Done)
                {
                    cout << "packet envoyer au client numero 4"  << endl;
                }
            break;

            }

            }
            envoiNewMap = false;
        }
]

edit : La fonction send renvoie le statu ERROR, j'ai regarder dans la doc mais elle ne dit rien de plus que : "il y a une erreur..." je comprend vraiment pas ou est le probleme  :'(. Toute aides est bonne a prendre !!
« Modifié: Septembre 03, 2016, 08:56:19 pm par leenheart »

 

anything