l'envoi et la réception des paquets UDP sur le socket datagramme dans android

J'ai deux classes,l'une de l'expéditeur de la classe et de l'autre, la classe de récepteur.À la fois de l'envoi et la réception d'applications s'arrête après quelques secondes et fermer.
Mon expéditeur de la classe est :

    public class MainActivity extends Activity {
InetAddress receiverAddress;
DatagramSocket datagramSocket;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    try {
        datagramSocket = new DatagramSocket(4444);
    } catch (SocketException e1) {
        //TODO Auto-generated catch block
        e1.printStackTrace();
    }

    byte[] buffer = "0123456789".getBytes();
    byte[] address="192.168.1.101".getBytes();

    try {
        receiverAddress = InetAddress.getByAddress(address);
    } catch (UnknownHostException e1) {
        //TODO Auto-generated catch block
        e1.printStackTrace();
    }

    DatagramPacket packet = new DatagramPacket(
            buffer, buffer.length, receiverAddress, 4444);

    try {
        datagramSocket.send(packet);
    } catch (IOException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }




}

Mon de la réception ou de l'écoute de la classe est:

public class MainActivity extends Activity {
DatagramSocket datagramSocket;
DatagramPacket packet;
TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tv1=(TextView)findViewById(R.id.textView1);
     try {
        datagramSocket = new DatagramSocket(80);
    } catch (SocketException e1) {
        //TODO Auto-generated catch block
        e1.printStackTrace();
    }

    byte[] buffer = new byte[10];
     packet = new DatagramPacket(buffer, buffer.length);

    try {
        datagramSocket.receive(packet);
    } catch (IOException e) {
        //TODO Auto-generated catch block
        e.printStackTrace();
    }
    byte[] buff = packet.getData();

tv1.setText(buff.toString());

}

Merci d'avance pour l'aide.

  • Je pense que vous devez exécuter ces datagramme transactions sur un thread séparé, ou un nouveau thread, même si je ne suis pas sûr si cela suffira à résoudre vos problèmes
  • Qu'est-ce que dans votre logcat ?
InformationsquelleAutor Ameer Humza | 2013-08-25