IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Besoind d aide en urgence


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut Besoind d aide en urgence
    Bonjour ,je rencontre un probléme depuis la nuit dérniere enfaite je lance un thread qui contient un socket udp qui est censé recevoir des données d'un autre thread et celle d'une variable d' une classe , ainsi j essaye d'acceder a la position de mon personnage et de l'envoyer par paquet mais le seul probléme et que quand je modifie la position du personnage dans le jeu elle ne se modifie pas dans le Thread c' est comme si elle rester fixer .... voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.SocketException;
     
    import javax.swing.JPanel;
     
    //import Board.moves;
     
    public class ClientReception extends JPanel implements Runnable 
    {
      DatagramSocket socket;
     // byte[] result=new  byte [2];
      String res;
     
     
    @Override
     
     
    public void run() 
    {
    	   DatagramSocket serverSocket = null;
    	   //this.addKeyListener(new moves());
    		//this.setFocusable(true);
     
    	try {
    		serverSocket = new DatagramSocket(9876);
    	} catch (SocketException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
     
           boolean bye=false;
           while(true) //instead of c i want to use true
          {
        	   int avcX=animation.board.p.getTileX();
        	   int avcY=animation.board.p.getTileY();;
            byte[] receivebuffer = new byte[1024];
            byte[] sendbuffer  = new byte[1024];
            DatagramPacket recvdpkt = new DatagramPacket(receivebuffer, receivebuffer.length);
            try {
    			serverSocket.receive(recvdpkt);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
            InetAddress IP = recvdpkt.getAddress();
            int portno = recvdpkt.getPort();
            String clientdata = new String(recvdpkt.getData());
            String [] Parts = clientdata.split(" ");
            System.out.println("\nClient : "+ Parts[0]+" part2-> "+Parts[1]);
            System.out.print("\nServer : ");
            BufferedReader serverRead = new BufferedReader(new InputStreamReader (System.in) );
            String serverdata = Integer.toString(avcX);
            String s2 = Integer.toString(avcY);
            String res =avcX+" "+avcY;
            sendbuffer = res.getBytes();
            DatagramPacket sendPacket = new DatagramPacket(sendbuffer, sendbuffer.length, IP,portno);
            try {
    			serverSocket.send(sendPacket);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} 
            //here the check condition for serverdata which must be bye
            if(serverdata.equalsIgnoreCase("bye"))
            {
                System.out.println("connection ended by server");
                break;
            }
     
            try {
    			Thread.sleep(2000);
    		} catch (InterruptedException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
        }
          serverSocket.close();
     
    }
    en effet si je modifie la position dans le jeu elle est modifié dans ce dernier mais pas dans le thread se qui est problématique pour envoyer les réel position du joueur . TileX=1 et TileY=1 tous au long du thread j ai vraiment besoin d'aide en urgence merci de bien vouloir m'aider .

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2016
    Messages : 31
    Par défaut
    Je suppose que tu as ouvert les différents streams de ton thread.
    Tu passes bien ces nouvelles infos dans ton thread?

    Je ne suis pas spécialisé dans les threads mais il me semble que soit tu dois lui faire lire les coordonnées directement, soit tu lui passe; il y a peu de chance que ça se fasse tout seul et dons ton code je ne vois aucune communication avec ton thread.

    EDIT : ok, je suis un boullet, je n'avais pas vu que le code était celui du thread.
    A part ça, ton objet animation sort d'où? Je ne vois aucun déclaration. Ca ne serait pas un objet de l'appli mère et qui donc n'a aucune communication directe avec le thread?

  3. #3
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut
    Citation Envoyé par Jbwils Voir le message
    Je suppose que tu as ouvert les différents streams de ton thread.
    Tu passes bien ces nouvelles infos dans ton thread?

    Je ne suis pas spécialisé dans les threads mais il me semble que soit tu dois lui faire lire les coordonnées directement, soit tu lui passe; il y a peu de chance que ça se fasse tout seul et dons ton code je ne vois aucune communication avec ton thread.
    Oui c est le avcX=animation.board.p.getTileX();
    avcY=animation.board.p.getTileY();
    j ai vérifier dans l'exe du jeu les getters fonctionne bien
    dans la boucle while(true)
    le thread est censé envoyer c'est coordonnées a l'autre joueur et en recevoir a son tour mais rien a faire quand j affiche acvX et acvY il reste fixer a la position initial meme chose pour le é eme joueurs c'est la derniere étape pour finir mon jeu.

Discussions similaires

  1. aide d urgence svp
    Par outaleb dans le forum Bioinformatique
    Réponses: 6
    Dernier message: 03/10/2007, 00h11
  2. Aide d'urgence SVP
    Par zghidi dans le forum Oracle
    Réponses: 7
    Dernier message: 12/05/2007, 14h00
  3. [JBoss]besoind d'aide j2ee eclipse jboss
    Par riad_yousri dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/12/2005, 09h08
  4. Réponses: 4
    Dernier message: 29/08/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo