mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-01-24 01:20:17 +01:00
fix server/client encoding
This commit is contained in:
parent
41a8fc740d
commit
bb1a7f21f9
|
|
@ -17,7 +17,6 @@
|
|||
import logging
|
||||
import socket
|
||||
import select
|
||||
from pprint import pformat
|
||||
|
||||
logging.debug("- %s loaded", __name__)
|
||||
|
||||
|
|
@ -74,9 +73,10 @@ class TCPClient:
|
|||
@param data: data to send to the server
|
||||
@return True or False"""
|
||||
try:
|
||||
logging.debug("transmitting:\n%s", pformat(data))
|
||||
header = str(len(data)).ljust(HEADERSIZE)
|
||||
self._sock.sendall(bytes(header + data, "utf-8"))
|
||||
logging.debug("transmitting:\n%s", data)
|
||||
data = data.encode("utf-8")
|
||||
header = str(len(data)).ljust(HEADERSIZE).encode("utf-8")
|
||||
self._sock.sendall(header + data)
|
||||
logging.debug("transmitted...")
|
||||
return True
|
||||
except socket.error as e:
|
||||
|
|
@ -92,12 +92,15 @@ class TCPClient:
|
|||
read, _, _ = select.select([self._sock], [], [], timeout)
|
||||
if not read: # check if there is something to read
|
||||
return False
|
||||
header = self._sock.recv(HEADERSIZE)
|
||||
|
||||
header = self._sock.recv(HEADERSIZE).decode("utf-8")
|
||||
if not len(header): # check if there data
|
||||
return False
|
||||
logging.debug("recv header: %s", header)
|
||||
length = int(header.decode("utf-8").strip())
|
||||
|
||||
length = int(header.strip())
|
||||
received = self._sock.recv(length).decode("utf-8")
|
||||
|
||||
logging.debug("recv header: '%s'", header)
|
||||
logging.debug("received %d bytes: %s", len(received), received)
|
||||
return received
|
||||
except socket.error as e:
|
||||
|
|
@ -111,9 +114,9 @@ class TCPClient:
|
|||
if self._sock:
|
||||
_, write, _ = select.select([], [self._sock], [], 0.1)
|
||||
if write:
|
||||
data = "<keep-alive>"
|
||||
header = str(len(data)).ljust(HEADERSIZE)
|
||||
self._sock.sendall(bytes(header + data, "utf-8"))
|
||||
data = "<keep-alive>".encode("utf-8")
|
||||
header = str(len(data)).ljust(HEADERSIZE).encode("utf-8")
|
||||
self._sock.sendall(header + data)
|
||||
return True
|
||||
return False
|
||||
except socket.error as e:
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import socketserver
|
|||
import threading
|
||||
import time
|
||||
import select
|
||||
from pprint import pformat
|
||||
|
||||
logging.debug("- %s loaded", __name__)
|
||||
|
||||
|
|
@ -47,18 +46,18 @@ class _ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
|
|||
if not read:
|
||||
continue # nothing to read on the socket
|
||||
|
||||
header = self.request.recv(HEADERSIZE)
|
||||
header = self.request.recv(HEADERSIZE).decode("utf-8")
|
||||
if not len(header):
|
||||
break # empty data -> socked closed
|
||||
|
||||
length = int(header.decode("utf-8").strip())
|
||||
length = int(header.strip())
|
||||
data = self.request.recv(length).decode("utf-8")
|
||||
|
||||
if data == "<keep-alive>":
|
||||
continue
|
||||
|
||||
logging.debug("%s recv header: %s", req_name, header)
|
||||
logging.debug("%s recv %d bytes:\n%s", req_name, len(data), pformat(data))
|
||||
logging.debug("%s recv header: '%s'", req_name, header)
|
||||
logging.debug("%s recv %d bytes:\n%s", req_name, len(data), data)
|
||||
|
||||
# add a new entry and the decoded data dict as an string in utf-8 and an timestamp
|
||||
self.server.alarmQueue.put_nowait((self.client_address[0], data, time.time())) # queue is threadsafe
|
||||
|
|
@ -66,9 +65,9 @@ class _ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
|
|||
|
||||
logging.debug("%s send: [ack]", req_name)
|
||||
|
||||
data = "[ack]"
|
||||
header = str(len(data)).ljust(HEADERSIZE)
|
||||
self.request.sendall(bytes(header + data, "utf-8"))
|
||||
data = "[ack]".encode("utf-8")
|
||||
header = str(len(data)).ljust(HEADERSIZE).encode("utf-8")
|
||||
self.request.sendall(header + data)
|
||||
|
||||
except socket.error as e:
|
||||
logging.error(e)
|
||||
|
|
|
|||
Loading…
Reference in a new issue