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 :

Envoi/reception tableau byte socket TCP


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Par défaut Envoi/reception tableau byte socket TCP
    Bonjour,
    je veux envoyer et recevoir un tableau de byte avec socket TCP en java, mais j'ai un probleme au niveau de l'emetteur. le tableau est reçu et je peux l'afficher, mais l'emetteur reste bloquer on dirait qu'il attend quelque chose.
    voici mon code:

    emetteur:

    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
    //in et out sont ObjectInput(output)Stream
     try
    {
    	      	int taille_tableau;
    		byte[] tabImg;
     
    //getBytesSansQualite(bufImage):methode qui retourne byte[]
    	       tabImg=ImageKit.getBytesSansQualite(bufImage);
    	      taille_tableau=tabImg.length;
    	      System.out.println("Taille tab="+taille_tableau);
    	      out.writeInt(taille_tableau);
    	      out.write(tabImg);
     
    	      System.out.println("FIN");
     
    	      }
    	      catch(AWTException e)
    	      {
    	    	  System.out.println("Erreur! ");
    	      }
     
    	     catch (UnknownHostException e) {
    		      System.err.println("Nom de la machine est inconnu!!");
    	     }
    	     catch (IOException e) {
    		      System.err.println("Erreur d E/S."); 
    	     }
    		    catch (SecurityException e) {
    		      System.err.println("Probleme de securite!!!"); 
    		    }
     
    Recepteur:
     
                  	int taille_tab=in.readInt();
                  	byte[] tabImg=new byte[taille_tab];
                  	System.out.println("Avant la reception du tableau!!");
                    try
                  	{
                  		int nbrOcetRecu;
                  		nbrOcetRecu=in.read(tabImg);
                  		System.out.println("Tableau LU");
                  	}
                  	catch(Exception e)
                  	{
                  		System.out.println("Exception!!");
                  	}
     
                  	System.out.println("FIN");
    Sachant que je veux pas utiliser un objet qui implemente serializable et a comme attribut un tableau de byte parce que j'ai une contrainte de bande passante que je dois le minimiser.
    Une autre chose si vous me permettez:j'ai rencontré une methode de ObjectInputStream qui est:readFully().pouvez vous m'expliquer aussi SVP qu'est ce quelle fait exactement.
    Merci d'avance

  2. #2
    Membre confirmé Avatar de cybercrisp
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 104
    Par défaut
    as tu le message FIN?


    readFully(byte[] b) est une méthode définie dans l’interface java.io.DataInput qu’implémente DataInputStream, elle permet de bloquer jusqu’au remplissage du tableau ici b,ou la rencontre de la fin de fichier, ou une erreur d’entrée/sortie.Il y a aussi readFully(byte[] b, int debut, int fin) qui permet de ne remplir qu’une partie du tableau

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Ton outputStream est-il en auto-flush ? Si ce n'est pas le cas, je ne vois d'appel explicite à flush dans ton code

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/03/2015, 09h24
  2. envoi de fichier via socket TCP
    Par thaiexpat dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 27/11/2013, 20h08
  3. envoi/reception fichier par socket
    Par rezuz dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 19/06/2010, 16h52
  4. envoi de tableau par sockets
    Par amelie773 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 23/03/2009, 16h22
  5. [sockets TCP] pb envoi de chaines, char :s
    Par sqwam71 dans le forum C
    Réponses: 9
    Dernier message: 14/01/2007, 00h10

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