Как говорится в заголовке, всякий раз, когда я пытаюсь отправить данные, socket.sendall (arg) добавляет в данные кучу байтов.Кажется, что это, по крайней мере частично, атрибуты из класса, где определен метод.
Вот соответствующие биты кода:
class Client:
NICK = ''
HOST = '127.0.0.1'
PORT = 65000
BUFSIZ = 4096
CONNECTION = None
def __init__(self, nick_name):
try:
self.NICK = nick_name
...
def send_n(self, data):
print("Sending:", data)
self.CONNECTION.sendall(data)
class Server:
def relay_game(self):
players = self.HANDLER.recv(self.BUFSIZ)
print("Received:", players)
print("SERVER SIDE DATA:", players.decode())
def run_handler():
h = client.Client("HANDLER")
data = (b'test')
print("Calling with:", data)
h.send_n(data)
А вот вывод:
Calling with: b'test'
Sending: b'test'
Received: b'\x80\x03X\x07\x00\x00\x00HANDLERq\x00.test'
Как вы можете видеть, куча байтов уже быладобавляется к «данным» при отправке из функции клиента «send_n» в функцию сервера «relay_game».Причина, по которой я сказал, что части байтов взяты из атрибутов Client, заключается в том, что значение NICK, в данном случае «HANDLER», присутствует в полученной части.
Кто-нибудь знает, почему это происходит?И какое возможное решение было бы решить это?
Спасибо за ваше время.