Hola! En primer lugar gracias por contestar.
La aplicación se basa en la tecnología Wifi Direct. El problema que tengo es que es que al tratarse de dos dispositivos diferentes, al usar System.currentTimeMillis() , los relojes de ambos deberían estar sincronizados y no encuentro la manera de llevar esto a cabo.
Con el DMMS de Android Studio, hay una herramienta que es network statistics, que me muestran el tiempo y la velocidad(no son datos muy exactos ya que se remite a la grafica). No estoy muy seguro pero me parece que este tiempo hace referencia al tiempo que tarda en enviar, y tiempo que tarda en recibir, en lugar del tiempo que tarda en llegar el mensaje de un punto a otro, que es lo que a mí me interesaría,no se si me podeis aclarar esto.
En resumen lo que me interesa es medir ese tiempo que tarda desde un punto a otro teniendo en cuenta que son dos dispositivos diferentes.
Parte en la que envío:
socket.bind(null);
socket.connect((new InetSocketAddress(host, port)), SOCKET_TIMEOUT);
int tamMensaje= 1024*1024; // 1 MByte de tamano de mensaje
byte[] bitAleatorio = new byte [tamMensaje]; // 1 byte, de -128 a 127
for (int x=0;x<bitAleatorio.length;x++){
bitAleatorio[x] =(byte) Math.round(Math.random());
}
DataOutputStream DOS = new DataOutputStream(socket.getOutputStream());
for(int i=0;i<1024;i++){
DOS.write(bitAleatorio,(i*1024),1024);
}
Parte en la que recibo:
ServerSocket serverSocket = new ServerSocket(SERVERPORT);
Socket client = serverSocket.accept();
DataInputStream DIS = new DataInputStream(client.getInputStream());
int tamMensaje= 1024*1024;
byte[] msg_received2= new byte [tamMensaje];
for(int i=0;i<1024;i++){
DIS.read(msg_received2,(i*1024),1024);
}
client.close();
serverSocket.close();
Gracias.
Un saludo.