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 :

Ecrire du binaire sur une Socket


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut Ecrire du binaire sur une Socket
    Bonjour à tous,

    je ne sais pas comment faire pour écrire quelques octets binaires sur une socket, auriez-vous une idée svp ?
    j'ai réussi à écrire du texte sur ma socket avec ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Socket socket = new Socket("127.0.0.1", 2802);
    PrintWriter pred = new PrintWriter(socket.getOutputStream(), true);
      .
      .
      .
    pred.print(coucheTransport.formerDonneesAEnvoyer());
    pred.print(sMessageApplicatif);
    pred.close();
    socket.close();
    mais je ne sais pas comment faire pour écrire des octets en binaires...

    merci pour votre aide

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    Utilise simplement la methode write() de l'OutputStream

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 155
    Par défaut
    ok, merci

    sinon autre question, il me semble qu'en c++ quand on manipule du binaire, on utilise des tableaux de unsigned char, mais en Java, on utilise quoi alors ? car un byte en java est signé je crois donc je ne sais pas comment m'en sortir...

    merci à vous

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ben, ils sont signés et c'est un peu embêtant quand on fait de l'arithmétique avec, mais ça reste des octets. 256 valeurs différentes, de -128 à 127. Où est le problème ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 155
    Par défaut
    Citation Envoyé par _LittleFlea_ Voir le message
    mais je ne sais pas comment faire pour écrire des octets en binaires...
    byte = octet
    un byte a 8 bit
    un bit = une valeur binaire = boolean
    Pour y ajouter, retirer des données, on peut utiliser les opérateurs Bitwise et & | ^ ~ et les décalages (bitshift) >>> <<

    Exemple:
    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
     
    boolean[] tableauDeValuerBinaire= new boolean[]{true, true, false, false, true, false, true, false};
    		int aEnvoyer = 0xF0;
    		for(int i=0; i<8; i++){
    		  if(tableauDeValuerBinaire[i]){
    		    aEnvoyer =  aEnvoyer | (0x01<<i);
    		  }else{
    		    aEnvoyer = aEnvoyer & (~(0x01<<i));
    		  }
    		}
    		System.out.println(aEnvoyer);
    		for(int i=0; i<8; i++){
    			System.out.println(aEnvoyer>>>i & 0x01);
    		}
    		byte byteFromInt = (byte) aEnvoyer;

Discussions similaires

  1. Ecrire un double sur une socket
    Par DeepSiderZ dans le forum Réseau
    Réponses: 11
    Dernier message: 17/07/2014, 17h41
  2. Ecrire du texte sur une fenêtre de Jeu vidéo (OSD)
    Par zenway dans le forum DirectX
    Réponses: 7
    Dernier message: 07/03/2009, 14h06
  3. Ecrire du texte sur une Overlay Surface
    Par deakuk dans le forum DirectX
    Réponses: 1
    Dernier message: 17/02/2006, 13h52
  4. [visual c++] connaitre le debit sur une socket
    Par khayyam90 dans le forum MFC
    Réponses: 4
    Dernier message: 25/10/2005, 16h12
  5. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06

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