import asyncio
import winuvloop
import orjson
winuvloop.install()
async def sendServer(message):
    try:
        reader,writer=await asyncio.open_connection('127.0.0.1',39999)
        writer.write(orjson.dumps(message) + b'\n')
        await writer.drain()
        writer.close()
        await writer.wait_closed()
    except Exception as e:
        print(e)
async def listenServer(reader,writer):
    try:
        data=await reader.read()
        if data:
            try:
                jsonData=orjson.loads(data)
                print(jsonData)
            except orjson.JSONDecodeError as e:
                print(e)
    except asyncio.CancelledError:
        raise
    finally:
        writer.close()
        await writer.wait_closed()
async def main():
    server=await asyncio.start_server(listenServer,'127.0.0.1',39998)
    getScripts=asyncio.create_task(sendServer({"messageID": 0}))
    print("server started, listening")
    await asyncio.gather(server.serve_forever(), getScripts)
if __name__=='__main__':
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("keyboard interrupt detected, quitting")