Una pregunta… el envío de los datos se da inmediatamente después de iniciar la conexión? A veces es necesario darle un tiempo de unos dos segundos desde que se inicia la conexión antes de efectuar el primer envío. Recomiendo probar utilizando un Thread.sleep(2000) a ver si eso soluciona el problema.