Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] passare un int con i socket

    è possibile passare direttamente un valore intero o reale tramite socket direttamente senza dover fare tutto il procedimento di metterlo nell'array di byte??
    silba

    Non avere timore innanzi ai tuoi nemici, si impavido e retto così che Dio possa amarti, di il vero sempre anche se ti conduce alla morte, salvaguarda gli indifesi e non fare torti.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] passare un int con i socket

    Originariamente inviato da LeDaVinci
    è possibile passare direttamente un valore intero o reale tramite socket direttamente senza dover fare tutto il procedimento di metterlo nell'array di byte??
    DataInputStream e DataOutputStream.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [Java] passare un int con i socket

    Originariamente inviato da andbin
    DataInputStream e DataOutputStream.
    cioè??
    quando creo il DatagramPacket come devo fare??
    silba

    Non avere timore innanzi ai tuoi nemici, si impavido e retto così che Dio possa amarti, di il vero sempre anche se ti conduce alla morte, salvaguarda gli indifesi e non fare torti.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [Java] passare un int con i socket

    Originariamente inviato da LeDaVinci
    cioè??
    quando creo il DatagramPacket come devo fare??
    Ah, allora è ancora più particolare. Se con i socket TCP hai a disposizione uno stream (InputStream/OutputStream) che puoi subito "wrappare" con DataInputStream/DataOutputStream, con i socket UDP devi creare un packet composto per forza da un array di byte.

    Se non ti va di scomporre "a mano" in byte i tuoi dati primitivi (int, double, ecc...) puoi fare:

    codice:
    ByteArrayOutputStream baos = new ByteArrayOutputStream ();
    DataOutputStream dos = new DataOutputStream (baos);
    
    dos.writeInt (1234);   // scrive un intero
    
    byte[] arr = baos.toByteArray ();
    L'array lo passi chiaramente al DatagramPacket da inviare.

    Dall'altra parte (dove si riceve) si farà la cosa inversa: si passa l'array ad un ByteArrayInputStream, lo si wrappa con DataInputStream e si leggono i dati nella stessa sequenza.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.