import json


def read_udp_message(socket):
    """
    Reads a UDP message from the socket and unpacks it.
    :param socket: the socket to receive from
    :return: json decoded message and address (host, port) as a tuple
    """
    data, address = socket.recvfrom(4096)
    data = data.decode('utf-8')
    return json.loads(data), address