0
Je tente d'écrire un programme de prise en utilisant Python. Dans mon côté client, j'ai cette section:Python Socket
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))
linesInBytes = clientSocket.recv(1024)
print(linesInBytes)
et dans mon côté serveur je:
connectionSocket, addr = serverSocket.accept()
#Set secret word
word = 'Arkansas'
linesForString = ''
#Prints out number of letters
for x in word:
linesForString += '_ '
linesInBytes = linesForString.encode('utf-8')
connectionSocket.send(linesInBytes)
Et pour une raison quelconque quand il imprime sur le côté client, il imprime:
b'_ _ _ _ _ _ _ _ _
Et il n'y a pas où dans le code où j'imprimer un b. D'où vient ce b? Merci!
essayer linesInBytes d'impression avant de l'envoyer et de voir ce qu'il contient, s'il vous plaît lire https://stackoverflow.com/questions/6269765/what-does-the-b-character-do-in-front-of-a-string -literal – JLev
Aussi, avez-vous vraiment besoin de l'encodage? – JLev
En Python 'b « .... »' représente une chaîne d'octets (soit une chaîne d'octets bruts sans codage associé). Voir par exemple [Cette question] (https://stackoverflow.com/questions/6224052/what-is-the-difference-between-a-string-and-a-byte-string). – larsks