I've had a mysterious problem earlier where the read would occationally crash LabVIEW if it had a timeout input of 2ms, changing the timeout to something else removed the bug(!).
Not an answer to your question, but why are you using two different ports? If you are going to have multiple clients you can still use one and the same port (just as web servers use port 80). If the clients are very different it might be practical (although not necessary), but if they are one and the same there is no need for using different ports.
If you have an example of the code you can share it may be easier to spot the problem.