Necesito programar datos de 1 a 100 MB en fragmentos de 1024 bytes mediante programación en el dispositivo remoto Bluetooth. Ambos son dispositivos Android. Aquí es un fragmento de código de muestra en mi programa cliente para transferir datos -Bluetooth Android Socket OutputStream write blocks infinitamente
bTSocket.connect(); //connect to remote BT device
DataOutputStream outStream = new DataOutputStream(bTSocket.getOutputStream());
byte[] buffer = new byte[1024];
int bytesToTransfer = 1000000;
while (bytesToTransfer > 0) {
outStream.write(buffer);
outStream.flush();
bytesToTransfer -= 1024;
}
outStream.close();
Mientras se ejecuta este fragmento de código en Android 2.2 (Froyo), que funciona bien. Sin embargo, en el caso de Android 2.3.4 y 4.0.4, outStream.write (buffer) bloquea infinitamente después de la transferencia de algunos datos (digamos de 100 KB). Vale la pena mencionar que el dispositivo remoto no está configurado para escuchar datos. ¿Hay alguna limitación en la cantidad de datos que se pueden escribir?
¿Estás diciendo que el otro lado no está leyendo datos del zócalo? –
Precisamente, el servidor no está configurado para leer datos a través de la transmisión. –