async def METHOD_NAME(service_client, loop, gate):
    gate.to_client_noop()
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    await loop.sock_connect(sock, gate.get_sockname_for_clients())
    sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
    async def _recv_no_data(s, loop):
        answer = b''
        try:
            while True:
                answer += await loop.sock_recv(sock, 2)
                assert False
        except Exception:  # pylint: disable=broad-except
            pass
        assert answer == b''
    recv_task = asyncio.create_task(_recv_no_data(sock, loop))
    await send_all_data(sock, loop)
    await asyncio.wait(
        [recv_task], timeout=1, return_when=asyncio.FIRST_COMPLETED,
    )
    await gate.sockets_close()
    await recv_task
    assert gate.connections_count() == 0
    gate.to_client_pass()
    sock2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock2.connect(gate.get_sockname_for_clients())
    await loop.sock_sendall(sock2, b'hi')
    hello = await loop.sock_recv(sock2, 2)
    assert hello == b'hi'
    assert gate.connections_count() == 1