No se puede establecer el valor DSCP en la aplicación android

Estoy utilizando android Studio para el desarrollo de la aplicación y quiero establecer el valor DSCP en la cabecera de IP utilizando sockets UDP. Estoy siguiendo este ejemplo .

import android.os.Message; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; public class UdpClientThread extends Thread{ String dstAddress; int dstPort; private boolean running; MainActivity.UdpClientHandler handler; DatagramSocket socket; InetAddress address; public UdpClientThread(String addr, int port, MainActivity.UdpClientHandler handler) { super(); dstAddress = addr; dstPort = port; this.handler = handler; } public void setRunning(boolean running){ this.running = running; } private void sendState(String state){ handler.sendMessage( Message.obtain(handler, MainActivity.UdpClientHandler.UPDATE_STATE, state)); } @Override public void run() { sendState("connecting..."); running = true; System.setProperty("java.net.preferIPv4Stack", "true"); try { socket = new DatagramSocket(); socket.setTrafficClass(128); //Setting the DSCP value address = InetAddress.getByName(dstAddress); // send request byte[] buf = new byte[256]; DatagramPacket packet = new DatagramPacket(buf, buf.length, address, dstPort); socket.send(packet); sendState("connected"); // get response packet = new DatagramPacket(buf, buf.length); socket.receive(packet); String line = new String(packet.getData(), 0, packet.getLength()); handler.sendMessage( Message.obtain(handler, MainActivity.UdpClientHandler.UPDATE_MSG, line)); } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(socket != null){ socket.close(); handler.sendEmptyMessage(MainActivity.UdpClientHandler.UPDATE_END); } } } } 

He buscado en este foro y he llegado a saber que usando System.setProperty("java.net.preferIPv4Stack", "true") podemos manipular los valores DSCP. Pero esto no parece estar funcionando en la aplicación para Android. ¿Cómo puedo lograr el comportamiento deseado? ¿Estoy perdiendo algo por aquí? El código funciona sin errores, pero cuando compruebo el wireshark (captura de "cualquier" interfaz y luego aplicar el filtro para udp) el valor de DSCP del paquete, no se modifica. Estoy usando Emulator en ubuntu 16 para probar el escenario. Cualquier ayuda es apreciada.

One Solution collect form web for “No se puede establecer el valor DSCP en la aplicación android”

El código anterior funciona en el dispositivo Android (probado en Samsung Galaxy S4) pero no en el emulador. Sin embargo, no pude establecer este System.setProperty("java.net.preferIPv4Stack", "true"); En tiempo de ejecución a través del código. El DSCP se puede establecer sin establecer explícitamente esta propiedad en android. Además de esto, si desea cambiar el valor DSCP en la cabecera IP utilizando un programa java simple que no sea el android, puede echar un vistazo a esta respuesta .

  • ¿Cómo usar sockets UDP en android?
  • Problema con DatagramSocket en Android 7.1.1
  • ¿Por qué no podemos enviar un paquete UDP desde un emulador de Android?
  • Java - android UDP falta de fiabilidad
  • Cómo obtener TTL de un paquete UDP en Java?
  • Retraso / retraso enorme de UDP con Android
  • Android nunca recibe paquetes UDP
  • Obtener la dirección de difusión wifi en Android wifi hotspot
  • ¿Problemas con el uso de TCP y UDP en la misma aplicación?
  • Uso de vlclib en Android
  • Paquetes UDP (vía WiFi Direct) nunca llegan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.