flush Data
open socket here, assign outputStream, write data to be printed
after all those mmOutStream.write() statements, these are on the finally statement
Closing the socket's output stream flushes it and closes the socket. Closing the socket itself is redundant. In your actual code it should do nothing at all, so adding a sleep before it should just be a waste of time.
Do you have any actual evidence for your strange belief that your program doesn't execute sequentially as written.
I would try removing the socket close.
Close this output stream and the socket associated with it.