Make recvLength = 0; In the rare case of it having bogus data.
I noticed from testing this that this might be the source of it, I once had a package returned with length total bogus. like 982349829 or something like that, it crashed my game, I suspect this is the source.