diría depende de qué intervalo exacto está intentando medir, la cantidad de tiempo desde el último byte de la solicitud que envía hasta el primer byte de la respuesta que ¿recibes? O hasta que se reciba toda la respuesta? ¿O está tratando de medir el tiempo del lado del servidor solamente?
Si está tratando de medir solo el tiempo de procesamiento del lado del servidor, tendrá dificultades para calcular la cantidad de tiempo que pasa en el tránsito de la red para que su solicitud llegue y la respuesta vuelva. De lo contrario, dado que usted está administrando la solicitud usted mismo a través de un Socket, puede medir el tiempo transcurrido entre cada dos momentos al verificar el reloj del Sistema y calcular la diferencia. Por ejemplo:
public void sendHttpRequest(byte[] requestData, Socket connection) {
long startTime = System.currentTimeMillis();
writeYourRequestData(connection.getOutputStream(), requestData);
byte[] responseData = readYourResponseData(connection.getInputStream());
long elapsedTime = System.currentTimeMillis() - startTime;
System.out.println("Total elapsed http request/response time in milliseconds: " + elapsedTime);
}
Este código mediría el tiempo desde el momento de comenzar a escribir su solicitud para cuando termine de recibir la respuesta, e imprimir el resultado (suponiendo que tiene sus métodos específicos de lectura/escritura en práctica).
Para propósitos de depuración, o para uso de su programa? – owenmarshall