tcp_server.py 930 B

12345678910111213141516171819202122232425262728
  1. import asyncio
  2. from crud import save_device_data
  3. async def handle_connection(reader, writer):
  4. addr = writer.get_extra_info('peername')
  5. print(f"New connection from {addr}")
  6. while True:
  7. try:
  8. data = await reader.read(1024)
  9. if not data:
  10. break
  11. print(f"Received from {addr}: {data.hex()}")
  12. msg = data.decode().strip()
  13. dtu_id, device_id, status = msg.split(",")
  14. await save_device_data(dtu_id, device_id, status)
  15. print("save data over")
  16. except Exception as e:
  17. print(f"Error: {e}")
  18. break
  19. writer.close()
  20. await writer.wait_closed()
  21. print("process over")
  22. async def start_tcp_server(host, port):
  23. server = await asyncio.start_server(handle_connection, host, port)
  24. print(f"TCP server running on {host}:{port}")
  25. async with server:
  26. await server.serve_forever()