Skip to content

Instantly share code, notes, and snippets.

@ga2arch
Created November 19, 2015 19:29
Show Gist options
  • Save ga2arch/e6038b4a28636394e936 to your computer and use it in GitHub Desktop.
Save ga2arch/e6038b4a28636394e936 to your computer and use it in GitHub Desktop.
import asyncio
from socket import socketpair
store = []
async def handler(reader, writer):
while True:
try:
data = await reader.readline()
print(data)
if data:
if data.decode() == 'done\r\n':
writer.close()
return
v, t = data.decode().split(' ')
store.append(dict(v=v, t=t))
asyncio.ensure_future(process(dict(v=v, t=t), writer))
except:
writer.close()
return
async def process(k, writer):
await asyncio.sleep(int(k['t']))
writer.write((k['v'] + ' timed out\n').encode())
loop = asyncio.get_event_loop()
coro = asyncio.start_server(handler, '127.0.0.1', 8888, loop=loop)
server = loop.run_until_complete(coro)
try:
loop.run_forever()
except KeyboardInterrupt:
pass
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment