Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #1

    Socket UDP - Elaborare stringa in ingresso

    Save a tutti, sono un pò neofita in java, mi sto acculturando e facendo ricerche varie, ma non riesco a venirne a capo:
    Ho un sistema di automazione che mi invia ogni 10 secondi delle stringhe UDP, ove sono contenuti dei valori dai quali riesco a sapere se una luce è accesa o spenta.
    Sto usando Eclipse, ho creato un socket UDP di ascolto, riesco a ricevere la stringa, ove l'ho tradotta anche in HEX (esadecimale), ma ora non riesco a capire come estapolare i valori


    codice:
    //Importo i package necessari
    import java.net.*;
    import java.io.*;
    public class ServerUDP {
    public void start() throws IOException {
     
         //Attivo la Socket sul Server in ascolto sulla porta 7777
         DatagramSocket serverSocket = new DatagramSocket(7777);
         byte[] buffer = new byte[2000];
         DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
     
         //Informazioni sul Server in ascolto
         InetAddress indirizzo = serverSocket.getLocalAddress();
         String server = indirizzo.getHostAddress();
         int port = serverSocket.getLocalPort();
         System.out.println("In ascolto Server UDP: "+ server + " porta: " + port);
     
         //Ciclo infinito per ascolto dei Client
         while (true) {
     
           //Messaggio ricevuto dal Client
           serverSocket.receive(packet);
           String ricevuto = new String( packet.getData(), 0, packet.getLength());
           for (int x = 0; x < 28; x++) {
           System.out.print(Integer.toHexString(buffer[x] & 0xFF)+" ");
           }
           System.out.print("\n" + ricevuto);
           System.out.print("\n");
         }
    }
       public static void main (String[] args) throws IOException {
         ServerUDP udpServer = new ServerUDP();
         udpServer.start();
       }

    Ho come risultato:
    In ascolto Server UDP: 0.0.0.0 porta: 7777
    72 4d 64 64 72 76 0 2 52 0 10 0 0 f4 0 0 0 0 17 1 1 6 0 0 0 0 0 0

    la stringa ricevuto mi da come risultato solo le lettere tranne i numeri, sarà qualche problema di formattazione?
    io ho necessità di estrarre "f4" che poi devo convertire in decimale, e i valori degl'ultimi 8 byte, ossia 1,6,0,0,0,0,0,0; ognuno di questi avrei necessità di convertirli in codice binario.

    Grazie per l'aiuto

    Gerardo
    Ultima modifica di LeleFT; 30-09-2014 a 16:41 Motivo: Aggiunti i tag CODE

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.