Start coding UDP server...

This commit is contained in:
Maxim Khomutov 2023-07-07 18:52:20 +03:00
parent 7648c992aa
commit b14a64abe3
2 changed files with 30 additions and 4 deletions

View File

@ -4,6 +4,10 @@
# Version 0.0
# Licence: FPA
# (c) kuitoi.su 2023
import asyncio
import socket
import traceback
from core import utils
@ -15,12 +19,34 @@ class UDPServer:
self.host = host
self.port = port
async def start(self):
self.log.debug("Starting UDP server")
async def handle_client(self, srv_sock):
loop = asyncio.get_event_loop()
while True:
try:
self.log.debug("TODO")
data, addr = await loop.sock_recv(srv_sock, 1024)
if not data:
break
code = data.decode()
self.log.debug(f"Received {code!r} from {addr!r}")
# if not await self.handle_code(code, sock):
# break
except Exception as e:
raise e
self.log.error(f"Error: {e}")
traceback.print_exc()
break
# srv_sock.close()
self.log.error("Error while connecting..")
async def start(self):
self.log.debug("Starting UDP server.")
srv_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
srv_sock.bind((self.host, self.port))
self.log.debug(f"Serving on {srv_sock.getsockname()}")
try:
await self.handle_client(srv_sock)
except Exception as e:
self.log.error(f"Error: {e}")
traceback.print_exc()
finally:
await self.stop()

View File

@ -14,7 +14,7 @@ class UDPServer:
self.Core = core
self.host = host
self.port = port
async def handle_client(self, srv_sock) -> None: ...
async def start(self) -> None: ...
async def stop(self) -> None: ...