You can't depend on getting everything you want on a single line, or in the same /sockread. It's best to save the entire response from the server and then parse it (maybe you're doing so already).
As for your problem, the server would have sent a "Transfer-Encoding: chunked" header (the 9d is hex for the number of bytes it will send next). This is an option for HTTP/1.1 responses from the server. I don't know of a way to stop it, other than requesting HTTP/1.0. If you must use 1.1, you will need to handle this encoding.