def get_frame
      raise SocketError.new("Connection closed by remote server") if !@socket or @socket.eof?

      header = @socket.read(4)
    
      raise SocketError.new("Error reading frame from remote server") if header.nil?
    
      length = header_size(header)
    
      raise SocketError.new("Got bad frame header length of #{length} bytes from the server") if length < 5
    
      return @socket.read(length - 4)
    end
def get_frame
      raise SocketError.new("Connection closed by remote server") if !@socket or @socket.eof?

      header = @socket.read(4)
    
      raise SocketError.new("Error reading frame from remote server") if header.nil?
    
      length = header_size(header)
    
      raise SocketError.new("Got bad frame header length of #{length} bytes from the server") if length < 5
    
      return @socket.read(length - 4)
    end
Receive an EPP frame from the server. Since the connection is blocking,
 this method will wait until the connection becomes available for use. If
 the connection is broken, a SocketError will be raised. Otherwise,
 it will return a string containing the XML from the server.