Ejemplo n.º 1
0
    sock.setblocking(False)
    await loop.sock_connect(sock, address)
    return sock


async def start_client(i, address):
    sock = await connect(address)
    await loop.sock_sendall(sock, b'Hello from client %d!' % i)
    reply = await loop.sock_recv(sock, 1024)
    print('Client', i, 'got:', reply)
    # Keep client alive with a read that never returns
    await loop.sock_recv(sock, 1024)


async def start_clients(address):
    for i in range(5000):
        loop.create_task(start_client(i, address))


if __name__ == '__main__':
    soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
    print('Setting max number of open files to', hard)
    resource.setrlimit(resource.RLIMIT_NOFILE, (hard, hard))

    print('Starting echo clients')
    loop.create_task(start_clients(('localhost', 25000)))
    try:
        loop.run()
    except KeyboardInterrupt:
        print('Stopping echo clients')
Ejemplo n.º 2
0
    chunks = []
    while True:
        chunks.append(await loop.sock_recv(sock, 4096))
        if not chunks[-1]:  # Server closed connection
            break

    sock.close()
    return b"".join(chunks)


async def download_one(host):
    data = await get(host)
    print("%-24s %3d KB" % (host + ":", len(data) // 1024))


async def download_all(*hosts):
    for host in hosts:
        await download_one(host)


if __name__ == '__main__':
    hosts = [
        'www.nzz.ch', 'www.20min.ch', 'www.blick.ch', 'www.bbc.com',
        'www.thetimes.co.uk', 'www.independent.co.uk', 'www.telegraph.co.uk',
        'www.nytimes.com', 'www.latimes.com', 'www.usatoday.com',
        'www.wsj.com', 'www.srf.ch', 'www.telezueri.ch', 'www.google.ch',
        'www.bing.com'
    ]
    loop.create_task(download_all(*hosts))
    loop.run()
Ejemplo n.º 3
0
    print('Connection', connection_count, 'closed')
    connection_count -= 1


async def listen(address):
    global connection_count
    server_sock = socket.socket()
    server_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server_sock.bind(address)
    server_sock.listen()
    server_sock.setblocking(False)

    while True:
        client_sock, addr = await loop.sock_accept(server_sock)
        connection_count += 1
        print('Connection', connection_count, 'from', addr)
        loop.create_task(echo(client_sock))


if __name__ == '__main__':
    soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
    print('Setting max number of open files to', hard)
    resource.setrlimit(resource.RLIMIT_NOFILE, (hard, hard))

    print('Starting echo server')
    loop.create_task(listen(('', 25000)))
    try:
        loop.run()
    except KeyboardInterrupt:
        print('Stopping echo server')