Android code not receiving UDP packet -


this android code not receiving packets. code based on java code works fine. can give input, issue. not running on emulator not emulator issues people have. sender app using android tablet wi-fi tablet address udp port matches in both sender , receiver.

could app dropping packets.

import java.net.datagrampacket; import java.net.datagramsocket; import java.nio.bytebuffer; import java.nio.byteorder; import android.os.bundle; import android.os.handler; import android.os.message; import android.util.log;  public class networkserver extends thread {     datagramsocket msocket = null;       boolean isfinish = false;     private simplestpossibleactivity activity;     public networkserver(simplestpossibleactivity activity)    {     this.activity = activity;    }     public void run()     {        try        {          log.d("udp", "listening");         msocket = new datagramsocket( 2010); //4444         msocket.setbroadcast(true);          while (!isfinish)          {             log.d("udp", "c: socket create success");            byte[] recvbuffer = new byte[12];            datagrampacket packet = new datagrampacket(recvbuffer,recvbuffer.length);            log.d("udp", "receiving...");            msocket.receive(packet);            log.d("udp", "received packet");             bytebuffer bb = bytebuffer.allocate(recvbuffer.length).                                        order(byteorder.little_endian);            bb.put(recvbuffer);            bb.rewind();            //system.out.println(bb.getfloat());            //system.out.println(bb.getfloat());            //system.out.println(bb.getfloat());             // byte[] buffer = packet.getdata();            //  string msg = new string(buffer);             // bundle data send message handler            bundle data = new bundle();            data.putfloat("latitude",  bb.getfloat());            data.putfloat("longitude", bb.getfloat());            data.putfloat("altitude",  bb.getfloat());             message msghandle = new message();            msghandle.setdata(data);            mhandler.sendmessage(msghandle);         } //end while      } catch (exception e) {          log.e("udp", "c: error", e);      }     }     private handler mhandler = new handler()     {          @override         public void handlemessage(message msg)          {            float lat;            float lon;            float alt;             bundle data = msg.getdata();            log.d("networkserver","adding position" + "lat = " + data.getfloat("latitude") +                                  "lon = " + data.getfloat("longitude") +                                   "alt = " + data.getfloat("altitude"));            activity.addposition(data.getfloat("latitude"),                                 data.getfloat("longitude"),                                 data.getfloat("altitude"));      }     }; } 

well i've seen android not accept udp packets broadcast. i'm still trying determine issue.

your server code included should fine. recvbuffer right size expected data, , i'm assuming have explained experienced errors if receiving udp packet. meaning, whatever use case is, udp packet isn't being received server because wasn't sent, or interrupted.

1) believe you're using sender app on pc, not android device. ("the sender app using android tablet wi-fi tablet address udp port matches in both sender , receiver.") if case, install wireshark , listen sent udp packets. confirm packets indeed being sent.

2) i'm assuming didn't test original java code same pc. e.g. receiver , sender on same pc. testing sender on pc android receiver app?

3) i'm assuming have correct minimum android permissions in androidmanifest.xml file. e.g. if you're multicasting udp, you'll need more this, don't believe are.

the way claim packets dropped determine sent network. (wireshark if possible) packet size small there no reason think router drop packet based on size limitations.

try submitting client code , explain how test scenario works exactly.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -