Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec les flux d'objets

    21 mai 2009 à 13:30:32

    Bonjour.
    Je dois réaliser un minijeu pouvant être jouer en réseau.
    Pour cela, j'ai créer une classe serveur qui renvoie l'état du jeu à chaque fois que le joueur le réclame soit toutes les 50ms (le serveur gère le jeu, le joueur n'ayant qu'à afficher l'état du jeu).
    Niveau structure, à chaque joueur correspond un thread Connexion crée par le serveur. Ce sont ces threads Connexion qui envoie les données.

    Mais un problème persiste : les joueurs reçoivent toujours l'état du jeu initial alors que côté serveur le jeu est bien en marche et change bien comme il faut.
    Je ne reçoit aussi aucune exception.
    J'ai beau retourner le problème dans tous les sens, je ne vois pas mon erreur.

    Les données envoyées sont deux ArrayList (envoyées et reçues séparément) contenant chacune des objets sérializés.
    Je précise aussi que la connexion avec le serveur marche bien et que l'envoi de données autres que l'état du jeu marche correctement.

    Voici le code envoyant les données :
    ObjectOutputStream out=new ObjectOutputStream(connexion.getOutputStream());
    BufferedReader in=new BufferedReader(new InputStreamReader(connexion.getInputStream()));
    [...]
    while(...)
    {
    String request=in.readLine();
    if(request.equals("LABY"))
    {		
    out.writeObject(serveur.getLabyrinthe().getPersos());			
    out.writeObject(serveur.getLabyrinthe().getBlocs());
    //serveur.getLabyrinthe() récupère le jeu en cours
    //serveur.getLabyrinthe().getPersos() est l'ArrayList contenant les personnages du jeu
    //serveur.getLabyrinthe().getBlocs() est l'autre ArrayList
    }
    }
    


    Et voici le code récupérant les données :
    ObjectInputStream ois==new ObjectInputStream(socket.getInputStream());
    PrintWriter out==new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
    [...]
    while(...)
    {
    out.println("LABY");
    ArrayList<Personnage> temp1=(ArrayList<Personnage>)ois.readObject();
    ArrayList<Bloc> temp2=(ArrayList<Bloc>)ois.readObject();
    
    //affichage du jeu
    }
    


    Y-aurait-il quelque chose que j'aurais oublié de faire ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter

    Probleme avec les flux d'objets

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown