Skip to content

Instantly share code, notes, and snippets.

@bashkirtsevich
Created May 30, 2019 18:15
Show Gist options
  • Save bashkirtsevich/de14adcf25c56ddea85a30967fc730e6 to your computer and use it in GitHub Desktop.
Save bashkirtsevich/de14adcf25c56ddea85a30967fc730e6 to your computer and use it in GitHub Desktop.
Asyncio socket
import asyncio, socket
async def handle_client(client):
request = None
while request != 'quit':
request = (await loop.sock_recv(client, 255)).decode('utf8')
response = str(eval(request)) + '\n'
await loop.sock_sendall(client, response.encode('utf8'))
client.close()
async def run_server():
while True:
client, _ = await loop.sock_accept(server)
loop.create_task(handle_client(client))
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 15555))
server.listen(8)
server.setblocking(False)
loop = asyncio.get_event_loop()
loop.run_until_complete(run_server())
async def handle_client(reader, writer):
request = None
while request != 'quit':
request = (await reader.read(255)).decode('utf8')
response = str(eval(request)) + '\n'
writer.write(response.encode('utf8'))
loop = asyncio.get_event_loop()
loop.create_task(asyncio.start_server(handle_client, 'localhost', 15555))
loop.run_forever()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment