def read(self):
<EOL>while b'<STR_LIT>' not in self._recv_buffer:<EOL><INDENT>self._recv_buffer += yield From(_read_chunk_from_socket(self.socket))<EOL><DEDENT>pos = self._recv_buffer.index(b'<STR_LIT>')<EOL>packet = self._recv_buffer[:pos]<EOL>self._recv_buffer = self._recv_buffer[pos + <NUM_LIT:1>:]<EOL>raise Return(packet)<EOL>
r"""
        Coroutine that reads the next packet.
        (Packets are \0 separated.)