mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 08:15:42 +00:00
Protocol fixes
This commit is contained in:
parent
a7c02e0b52
commit
de91d075b4
@ -194,7 +194,13 @@ class Client:
|
||||
async def _recv(self, one=False):
|
||||
while self.__alive:
|
||||
try:
|
||||
header = await self.__reader.read(4)
|
||||
header = b""
|
||||
while len(header) < 4 and self.__alive:
|
||||
h = await self.__reader.read(4)
|
||||
if not h:
|
||||
break
|
||||
else:
|
||||
header += h
|
||||
|
||||
int_header = int.from_bytes(header, byteorder='little', signed=True)
|
||||
|
||||
@ -219,9 +225,14 @@ class Client:
|
||||
self.__packets_queue.append(None)
|
||||
continue
|
||||
|
||||
data = await self.__reader.read(int_header)
|
||||
data = b""
|
||||
while len(data) < int_header and self.__alive:
|
||||
buffer = await self.__reader.read(int_header - len(data))
|
||||
if not buffer:
|
||||
break
|
||||
else:
|
||||
data += buffer
|
||||
|
||||
# self.log.debug(f"int_header: {int_header}; data: `{data}`;")
|
||||
abg = b"ABG:"
|
||||
if len(data) > len(abg) and data.startswith(abg):
|
||||
data = zlib.decompress(data[len(abg):])
|
||||
|
@ -100,8 +100,8 @@ class UDPServer(asyncio.DatagramTransport):
|
||||
await asyncio.sleep(0.2)
|
||||
|
||||
except OSError as e:
|
||||
self.run = False
|
||||
self.Core.run = False
|
||||
# self.run = False
|
||||
# self.Core.run = False
|
||||
self.log.error(f"Cannot bind port or other error: {e}")
|
||||
except Exception as e:
|
||||
self.log.error(f"Error: {e}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user