Testing with sockets

This commit is contained in:
aewens 2019-09-18 09:16:21 -05:00
parent 6c1cc0bf9a
commit 19cf34904f
1 changed files with 48 additions and 2 deletions

View File

@ -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())