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

Entrée/Sortie Java Discussion :

Taille des données emis vers le serveur


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Homme Profil pro
    .
    Inscrit en
    Mai 2012
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mai 2012
    Messages : 120
    Points : 81
    Points
    81
    Par défaut Taille des données emis vers le serveur
    Bonjour à tous,
    j'ai un problème que j'arrive pas à resoudre que voici:

    je transmet cette matrice ligne par ligne à un serveur UDP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [1, 1, 0, 0, 0, 1, 0, 1]
    [1, 1, 0, 1, 1, 1, 1, 0]
    [1, 1, 0, 1, 1, 1, 0, 1]
    [1, 1, 0, 1, 0, 1, 0, 0]
    [1, 1, 0, 1, 1, 1, 1, 0]
    [1, 1, 1, 0, 1, 0, 1, 1]
    [1, 1, 1, 0, 0, 1, 0, 0]
    A l'aide du morçeau de code suivant:
    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
     
    while(true)
    {
    ...................................
    for(int j=0;j<message.length()+1;j++)
                		{
    						car=new char[new String(prod[j]).length()];
    						car=cara(new String(prod[j]).substring(0, 7));
                			System.out.println(Arrays.toString(car)+"["+new String(prod[j]).substring(7)+"]");
                			tampon = new byte[new String(prod[j]).length()];
                        	tampon = new String(prod[j]).getBytes();
                        	DatagramPacket paquet = new DatagramPacket(tampon, tampon.length, address, port);
                        	socket.send(paquet);
     
                		}
    ...................................
    }
    Maintenant coté serveur UDP voiciun morçeau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while(true){
    ..............................................
     
     DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                      serverSocket.receive(receivePacket);
                      String sentence = new String( receivePacket.getData());
    System.out.println(sentence);
    .................................................
    }
    Mon problème c'est que mon recepteur recu la matrice ligne par ligne moi par contre je voudrais recevoir toute les ligne de la matrice puis afficher .
    j'ai voulu faire une boucle sur le code du serveur precedent mais le problème je ne sais quelle condition prendre.
    Tout en esperant ètre clair dans mes dits
    Si quelqu'un a une idée qu'il m'aide .
    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    quand on veut transmettre des données,

    • Soit, on les transmets en une fois
    • Soit, on met en place un petit protocole


    ce petit protocole peut simplement être constituer de deux mots : DEBUT et FIN

    ainsi ton serveur peut rassembler les messages reçus entre les 2 messages DEBUT et FIN comme faisant partie d'un même ensemble de données, ta matrice.

    Bien sur, il faut s'arranger pour qu'il n'y ait pas confusion entre tes mots de protocole et les datas. ici des messages de données étant constitués visiblement que de chaines de caractères 0 ou 1, pas de problème, sinon, tu peux mettre en place un header, par exemple DATA

    avec un truc dans le genre :

    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
     
    String message=readmessage();
    if ( "DEBUT".equals(message) ) {
        if ( !list.isEmpty() ) System.out.println("Erreur matrice incomplète");
        list.clear();
    }
    else if ( "FIN".equals(message) ) {
        System.out.println("Matrice reçue :");
        for(String string : list) {
            System.out.println(string);
        }
        list.clear();
    }
    else if ( message.startWith("DATA") ) {
        list.add(message.substring("DATA".length()));
    }
    else {
       System.out.println("Erreur message incompréhensible");
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/05/2011, 20h55
  2. [Architecture]Taille des données de type number
    Par Nick_Holmes dans le forum Oracle
    Réponses: 6
    Dernier message: 16/06/2006, 14h17
  3. Envoyer des données mysql vers Excel
    Par thierry198 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 09/11/2005, 19h59
  4. Importer des données excel vers outlook
    Par faayy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/10/2005, 09h30
  5. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 18h16

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