import asyncio
import aiohttp
@asyncio.coroutine
def fetch_page(url):
response = yield from aiohttp.request('GET', url)
assert response.status == 200
return (yield from response.read())
content = asyncio.get_event_loop().run_until_complete(
fetch_page('http://python.org'))
print(content)
import asyncio
loop = asyncio.get_event_loop()
@asyncio.coroutine
def get_future():
future = asyncio.Future()
loop.call_later(2, future.set_result)
return future
loop.run_until_complete(get_future())
import asyncio
class EchoClient(asyncio.Protocol):
def connection_made(self, transport):
print('connection_made')
self.transport = transport
self.host, self.port = transport.get_extra_info('peername')
def data_received(self, data):
"""hook to handle data received by sock.recv()"""
# write data to socket. try to send directly else create a buffer
self.transport.write(data)
def connection_lost(self, exc):
print('closed')
import asyncio
from myapp import EchoClient
from myapp import EchoServer
loop = asyncio.get_event_loop()
@asyncio.coroutine
def run_client():
protocol, transport = yield from loop.create_connection(EchoClient,
'127.0.0.1', 8000)
loop.call_later(5, transport.close)
@asyncio.coroutine
def run_server():
server = yield from loop.create_Server(EchoServer, '127.0.0.1', 8000)
loop.create_task(run_client())
loop.run_forever()