def make_request(control_sock, request, data_port, name):
    """
    Sends the specified request over the specified control socket.
    The socket must already be connected.

    control_sock - The socket to send the request and receive the response over
    request      - The request command (GET, LIST, or CD)
    data_port    - The port to use for the data connection
    name         - The name of the command target or None for LIST

    Returns whether the socket is still open and the response from the server.
    """
    # Send command to server along with data port and file/dirname (if any)
    control_sock.send('{0} {1} {2}'.format(request, data_port, name))

    # Get response from server
    return control_sock.recv()