CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Q.dino con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

Thread sempre attivo in ricezione di pacchetti UDP su WIFI

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Oct 2013
    Messaggi
    1

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Thread sempre attivo in ricezione di pacchetti UDP su WIFI

    Buongiorno, sto facendo la mia prima applicazione in android e ho un problemino...
    Ho creato una app che manda sulla porta 35555 in wifi dei messaggi UDP e l'ho installata su un cellulare.
    Poi ho creato una app che si mette in ascolto sempre sulla porta 35555 e quando riceve un messaggio lo stampa
    sul display (di un altro cellulare)
    Io vorrei che funzionasse in continuo ma ricevo e stampo a video solo la prima volta e poi se rimando un messaggio, nulla non ricevo e non stampo.
    Io ho fatto così:
    nell'Activity nella funzione onCreate, creo il nuovo thread così:
    new Thread(new UDPService());

    e il thread è:
    public class UDPService extends Thread {
    //Create threaded server
    UDPService () {
    start();
    }
    public void run() {
    System.out.println("Starting");
    int port = 35555;
    try {

    // Create a socket to listen on the port.
    DatagramSocket dsocket = new DatagramSocket(port);

    // Create a buffer to read datagrams into. If a
    // packet is larger than this buffer, the
    // excess will simply be discarded!
    byte[] receiveData = new byte[1024];

    System.out.println("loop start");

    while (true) {
    DatagramPacket packet = new DatagramPacket(receiveData, receiveData.length);
    // Wait to receive a datagram

    dsocket.receive(packet);

    String sentence = new String(packet.getData());
    TestoRicevutodaWifi.setText(sentence);

    // Reset the length of the packet before reusing it.
    System.out.println("setlength");
    packet.setLength(receiveData.length);


    }
    } catch (Exception e) {
    System.err.println(e);
    }
    }
    }

    In più per visualizzare l'unico messaggio che mi arriva devo far fare il refresh al display in manuale.

    Grazie
    Ciao
    Walter

  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy