From 19cf34904f6164d0ebf5e8045652f84f0bde9035 Mon Sep 17 00:00:00 2001 From: aewens Date: Wed, 18 Sep 2019 09:16:21 -0500 Subject: [PATCH] Testing with sockets --- event_loop.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/event_loop.py b/event_loop.py index d3ad4f6..440da9d 100644 --- a/event_loop.py +++ b/event_loop.py @@ -1,7 +1,33 @@ +from abots.helpers import generator, coroutine, infinitedict + from asyncio import get_event_loop, sleep, wait, Queue +from socket import socket, timeout as sock_timeout +from socket import AF_INET, SOCK_STREAM, SOL_SOCKET, SO_REUSEADDR +from ssl import wrap_socket +from time import sleep as nap + +async def handle_client(loop, client): + while True: + try: + request = await loop.sock_recv(client, 256) + except Exception as e: + continue + + if request: + message = request.decode() + print(message) + + await sleep(0) + + client.close() + +async def run_server(loop, server): + while True: + client, _ = await loop.sock_accept(server) + loop.create_task(handle_client(loop, client)) + await sleep(0) async def push(loop, queues): - print("PUSH") while all([queue for queue in queues]): send = queues.get("push") receive = queues.get("pull") @@ -70,9 +96,15 @@ async def main(loop): queues["push"] = Queue() queues["pull"] = Queue() + server = wrap_socket(socket(AF_INET, SOCK_STREAM)) + server.setblocking(False) + server.settimeout(1) + server.connect(("", 6697)) + await queues["hook"].put(test) await queues["push"].put(("test", "change", None, True)) + tasks.append(loop.create_task(handle_client(loop, server))) tasks.append(loop.create_task(pull(loop, queues))) tasks.append(loop.create_task(push(loop, queues))) await wait(tasks) @@ -80,7 +112,21 @@ async def main(loop): loop = get_event_loop() try: - loop.create_task(main(loop)) + #loop.create_task(main(loop)) + #server = wrap_socket(socket(AF_INET, SOCK_STREAM)) + server = socket(AF_INET, SOCK_STREAM) + server.setblocking(False) + #server.settimeout(1) + server.bind(("localhost", 10201)) + server.listen(5) + loop.create_task(run_server(loop, server)) loop.run_forever() finally: loop.close() + +#server = wrap_socket(socket(AF_INET, SOCK_STREAM)) +#server.connect(("irc.tilde.chat", 6697)) +#while True: +# print(server.recv(4096)) +# res = input("> ") +# server.send(f"{res}\r\n".encode())