docs: def tcp_server(tcp_addr, settings):
    """Start up the tcp server, send the settings."""
    family = socket.AF_INET6 if ":" in tcp_addr.ip else socket.AF_INET
    sock = socket.socket(family, socket.SOCK_STREAM, socket.IPPROTO_TCP)
    sock.bind(tcp_addr)
    sock.listen(1)
    logging.info("Waiting for connection on %s", tcp_addr)
    conn, addr = sock.accept()
    logging.info("Accepted connection from %s", Addr(*addr))
  
    # Send map_data independently for py2/3 and json encoding reasons.
    write_tcp(conn, settings["map_data"])
    send_settings = {k: v for k, v in settings.items() if k != "map_data"}
    logging.debug("settings: %s", send_settings)
    write_tcp(conn, json.dumps(send_settings).encode())
    return conn