<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _read(self):
 """Actually read the response and parse it, returning a Response."""

    with sw("read_response"):
      with catch_websocket_connection_errors():
        response_str = self._sock.recv()
    if not response_str:
      raise ProtocolError("Got an empty response from SC2.")
    response = sc_pb.Response()
    with sw("parse_response"):
      response.ParseFromString(response_str)
    return response