В основном я хочу, чтобы упаковать и отправить символы из моего клиента к серверу, в Python и у меня есть строка, и я пытаюсь отправить его символы один за другим, как это:Python STRUCT посылающих символы
a='abcd'
s.sendall(struct.pack("!c",a[0]))
Под этим я хочу отправить письмо «a». Но я получаю формат «char» ошибки, для которого требуется объект байтов длиной 1.
Я исследовал, и он говорит, что я должен положить b перед моим символом, как b'a ', но так как мой символ хранится в переменной, как мне это сделать?
Также есть способ упаковать строку со структурой без выполнения char char?
То, что я пытаюсь сделать:
a = 'ab cd ef '
nrel = len(a)
c.send(struct.pack("!i", nrel)) //send the length
for i in range (0,nrel):
c.send(struct.pack("!c",a[i].encode('ascii'))) //send each char one by one
И сервер:
nr = c_socket.recv(4096)
nr = struct.unpack("!i",nr)[0]
cuv = ''
for i in range (0,nr):
el = c_socket.recv(4096)
ch = struct.unpack("!c",el)[0].decode('ascii') //fails after reading the second letter
cuv = cuv + ch
Вы используете Python 2 или 3? –
Я использую Python 3 – Mocktheduck