基本上我想打包,從我的客戶端發送字符到我的服務器,Python和我有一個字符串,我想通過一個這樣的發送其字符之一:Python的結構發送字符
a='abcd'
s.sendall(struct.pack("!c",a[0]))
由此我想發送字母'a'。但是我得到錯誤「字符格式需要長度爲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