Eine Lösung wäre, dass der Client auf dem Android Gerät nur eine Verbindung zum Server aufbaut, ausgehend ist das ja erlaubt.
Wenn die
TCP Verbindung einmal aufgebaut ist, dann ist sie bidirektional, der Server kann auch jederzeit von sich aus Daten zum Gerät senden. Das Android Gerät muss dann nur aus dem Socket lesen, und zwar kontinuierlich. Am einfachsten ist das mit einem Thread.
Gleichzeitig kann das Gerät auch jederzeit auf dem Socket Daten an den Server übertragen.