Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - GG_A_SsaSsIbs

Pages: [1]
1
Réseau / Problème dans le système d'écoute côté serveur
« le: Mars 13, 2014, 05:21:55 pm »
Bonjour à tous,

Je réalise à titre d'entrainement un client/serveur basique de type chat. Je rencontre un problème lors de l'écoute et du traitement des données côté serveur, mon programme server toutefois compile bien et ne plante pas mais il ne retourne pas le résultat attendu .

Mon système fonctionne ainsi :

Le serveur stock les clients dont la connexion à réussi dans un conteneur list et à partir de ce conteneur list j'écoute chaque client connecté pour gérer les packets entrant/sortant.

Voici le morceau de code traitant de ceci :

if(selector.wait(sf::milliseconds(100)))
    {
        if (selector.isReady(listener))
        {
            client = new sf::TcpSocket;

            if(listener.accept(*client) == sf::Socket::Done)
            {
                clientList.emplace_back(client);
                for(std::list<std::unique_ptr<sf::TcpSocket>>::iterator it = clientList.begin(); it != clientList.end(); ++it)
                {
                    if(**it == *client)
                     {
                        selector.add(**it);
                     }
                }
                std::cout << "Client IP : " << client->getRemoteAddress() << "connected" << std::endl;

            }else{

                delete client;

            }
        }
        if(!clientList.empty())
        {
            for(auto& clientCurrentList: clientList)
            {
                std::cout << selector.isReady(*clientCurrentList) << std::endl;
                if(selector.isReady(*clientCurrentList))
                {
                    std::cout << "test2" << std::endl;
                    if(clientCurrentList->receive(packet) == sf::Socket::Done)
                    {
                        std::cout << "Client IP : " << clientCurrentList->getRemoteAddress() << "send a packet" << std::endl;
                        packet >> message;
                        for(auto& sendClientCurrentList: clientList)
                        {
                            packet << message;
                            sendClientCurrentList->send(packet);
                        }
                    }else if(clientCurrentList->receive(packet) == sf::Socket::Error)
                    {
                        std::cout << "Client IP : " << clientCurrentList->getRemoteAddress() << "error with a packet" << std::endl;
                    }
                }
            }
        }

    }

Mon problème ce situe dans la seconde partie du code, ici précisément :

if(selector.isReady(*clientCurrentList))
Ma condition est toujours fausse quoi qu'il arrive ce qui fait que mon client plante puisque le packet n'arrive jamais, il faut que j'éteigne le serveur pour débloquer le client.

Si une âme charitable pouvait m'expliquer ce que j'ai fait de travers, je suis preneur. :)

Merci par avance.

2
Général / Erreur pour build sfml 2.1 + sfgui ( cmake )
« le: Février 13, 2014, 08:08:34 pm »
Bonsoir,

Je souhaiterais pouvoir tester la lib sfgui. Je fais donc un montage avec Cmake comme l'explique le site en liant sfgui à sfml et glew.

Lors de la configuration du montage, je tombe sur cette erreur :

CMake Error at SFML-2.1/cmake/Modules/FindSFML.cmake:199 (message):
  Could NOT find SFML (missing: SFML_GRAPHICS_LIBRARY SFML_WINDOW_LIBRARY
  SFML_SYSTEM_LIBRARY)

Je m'empresse donc de modifier le CmakeLists.txt de sfgui pour y ajouter :

set( GLEW_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/glew-1.10.0/include" )
set( GLEW_LIBRARY "${PROJECT_SOURCE_DIR}/glew-1.10.0/lib" )
find_package( GLEW REQUIRED )
set( CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/SFML-2.1/cmake/Modules" )
set( SFML_ROOT "${PROJECT_SOURCE_DIR}/SFML-2.1" )
find_package( SFML 2 REQUIRED COMPONENTS graphics window system )

J'ai même essayé dans le set SFML_ROOT de mettre le lien absolue en partant de C:\etc...... mais aucun changement.

Je me rends donc dans le findSFML.cmake voir ce qu'il en est. Les commentaires disent de spécifier quel module nous voulons utiliser ( system, window etc .... ).

Ce qui est déjà fournies dans le CmakeFiles de sfgui :

find_package( SFML 2 REQUIRED COMPONENTS graphics window system )
Je me tourne vers vous du coup pour comprendre ce que j'ai zappé dans le processus ou du moins avoir une piste. :)

Merci par avance pour toute aide apportée.

Assa

3
Général / Fenêtre qui n’apparaît pas après la compilation
« le: Décembre 18, 2012, 09:39:05 am »
Bonjour,

Je voulais tester ce matin la librairie SFML et pour ce faire, j'ai suivi scrupuleusement les informations donnés sur la version qui m'intéressait. ( http://www.sfml-dev.org/tutorials/2.0/start-cb-fr.php ).

Je récupère le code à la fin, le compile et run. Lors de la compilation apparemment il n'y aucun problème selon le compilo mais voila, la fenêtre n’apparaît jamais et au bout de 5 à 8 secondes environ, l'IDE me rend la main avec pour message :

Process terminated with status -1073741819 (0 minutes, 7 seconds)

Si quelqu'un pouvait me mettre sur une piste par rapport à ça, je lui en serais bien reconnaissant.

Merci par avance.

Cordialement,

Edit : J'utilise la version static de la librairie.


Pages: [1]