Implement a robust socket message reader | Apple Interview Question