I believe socket.recv() and TCP read act differently. Take a look at the TCP read "mode" terminal. You probably should wire CRLF or immediate mode to it.
In the default "standard" mode, LabVIEW will wait until all bytes were received (512 in your case) or the timeout occured. Unless you expect at least 512 bytes for the response, you will get a timeout error.
Make the "data out" terminal at little larger. Is your expected response already there?