From 3fab3d818ccc08b52c4479b09fa247c083b05c79 Mon Sep 17 00:00:00 2001 From: ASHISH JULEY <Ashish2.Juley@live.uwe.ac.uk> Date: Sun, 16 Jul 2023 09:08:42 +0100 Subject: [PATCH] Add task3.py --- task3.py | 28 ++++++++++++++++++++++++++++ worksheet3 | 1 + 2 files changed, 29 insertions(+) create mode 100644 task3.py create mode 160000 worksheet3 diff --git a/task3.py b/task3.py new file mode 100644 index 0000000..920839b --- /dev/null +++ b/task3.py @@ -0,0 +1,28 @@ +import asyncio +import websockets +import time +import struct + +async def main_loop(uri): + async with websockets.connect(uri) as websocket: + await recv_and_decode_packet(websocket) + while True: + packet = struct.pack('<HHHH4s', 0, 542, len(b'1111'), checksum, b'1111') + await websocket.send(packet) + await recv_and_decode_packet(websocket) + time.sleep(1) + +def recv_and_decode_packet(websocket): + response = await websocket.recv() + print(f"Base64: {response}") + + decoded = struct.unpack('<HHHH4s', response) + print(f"Decoded Packet:\nSource Port: {decoded[0]}\nDest Port: {decoded[1]}\nData Length: {decoded[2]}\nChecksum: {decoded[3]}\nPayload: {decoded[4]}") + +def calculate_checksum(data): + # Implement your checksum calculation here + return checksum + +# Run the main loop +asyncio.run(main_loop('ws://localhost:5612')) + diff --git a/worksheet3 b/worksheet3 new file mode 160000 index 0000000..513c13c --- /dev/null +++ b/worksheet3 @@ -0,0 +1 @@ +Subproject commit 513c13c4573e1da6aa19acfaec07dcdf66b105f4 -- GitLab