Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    17

    inviare messaggi via udp

    salve..ho un problema..devo inviare via UDP un pacchetto con un messaggio di 6 byte così composto:
    C I A O 1234.
    In pratica il messaggio deve essere un byte[] di 4 byte per C I A O (contenente i codici ASCII) e 2 byte per il numero 1234..
    suggerimenti?

  2. #2

    Re: inviare messaggi via udp

    Originariamente inviato da frestix
    salve..ho un problema..devo inviare via UDP un pacchetto con un messaggio di 6 byte così composto:
    C I A O 1234.
    In pratica il messaggio deve essere un byte[] di 4 byte per C I A O (contenente i codici ASCII) e 2 byte per il numero 1234..
    suggerimenti?
    Per realizzare una connessione UDP usa la classe DatagramSocket.
    Ecco un esempio ufficiale.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    17
    i campi del messaggio..in questo caso gli ASCII di C I A O e il numero 1234 come li concateno nel byte[]?

  4. #4
    Originariamente inviato da frestix
    i campi del messaggio..in questo caso gli ASCII di C I A O e il numero 1234 come li concateno nel byte[]?
    Puoi usare ByteArrayOutputStream per concatenare i byte.

    In Java l'int è un dato di 4 byte non 2 (se te ne serve uno di 2 byte, usa short).
    Per convertire l'int in byte[] fai lo shift dei bit.
    lolide
    Java Programmer

    Informati

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    17
    devo inviare via UDP il seguente messaggio su 10 byte :
    C I A O 192.168.9.1 1234 (4 caratteri in codice ASCII, un indirizzo ip su 4 byte, uno short)

    come creo il byte array da passare al datagrampacket? uso classi filtro? in che modo?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    17
    nessuno?^

  7. #7
    Originariamente inviato da frestix
    devo inviare via UDP il seguente messaggio su 10 byte :
    C I A O 192.168.9.1 1234 (4 caratteri in codice ASCII, un indirizzo ip su 4 byte, uno short)

    come creo il byte array da passare al datagrampacket? uso classi filtro? in che modo?
    Converti tutto in byte ...
    Tratti l'IP come 4 short divisi da un punto.
    lolide
    Java Programmer

    Informati

  8. #8
    io ho fatto così:

    codice:
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
     DataOutputStream dos = new DataOutputStream(baos); 
    char[] header = new char[]{'H','E','L','O'};
     for(int i = 0;i<4;i++){ dos.write((int)header[i]); } 
    dos.write(ip.getAddress()); 
    dos.write(toByte(port)); // il metodo toByte è stato necessario implementarlo per convertire 
    
    //uno short di 2 byte in array di bytes usando l' operatore shift
    PS:ma il progetto non dovresti averlo già consegnato?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    17
    no..non girava bene..e per l'audio in ricezione..come hai fatto a ricavare il formato da passare al sourcedataline?

  10. #10
    Ho implementato un metodo che "pacchettizzava" il file audio wav originale in pacchetti di dimensione inferiore al ReceiveBuffer( <8k)associato al socket del destinatario e il risultato lo davo come parametro(un inputStream anzichè un file come nell esempio) all' AudioSystem.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.