function read_packets() { while ($this->read_buffer->length() > 4) { // $this->log("reading packets\n"); // $this->log("Read Buffer:\n" . hex_pretty_print($this->read_buffer->buffer) . "\n"); list($length, $number) = Packet::parse_header($this->read_buffer->buffer); // $this->log("got packet {$number} of length {$length} read buffer length: " . $this->read_buffer->length() . "\n"); if ($length + 4 <= $this->read_buffer->length()) { // $this->log("read packet of length {$length}.\n"); $binary = $this->read_buffer->pop($length + 4); $packet = new Packet($binary); // $this->log("Packet:\n" . hex_pretty_print($binary) . "\n"); // $this->log(hex_php_string($binary) . "\n"); $this->queue_read_packet($packet); } else { return; } } }