rather then using try here (and potentially eating a real error we care about) it probably makes sense to read in a while loop until we hit a ":" char (all single octet ASCII until that char) everything before that char should be numeric and indicate the length of the rest of the command in bytes... IIRC there is a constant exposed on wire for this delimiter character