diff --git a/task3.py b/task3.py new file mode 100644 index 0000000000000000000000000000000000000000..920839bed3e6bea25e7ffb9572933ae91aac380d --- /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 0000000000000000000000000000000000000000..513c13c4573e1da6aa19acfaec07dcdf66b105f4 --- /dev/null +++ b/worksheet3 @@ -0,0 +1 @@ +Subproject commit 513c13c4573e1da6aa19acfaec07dcdf66b105f4