TypeError: un octets-comme l'objet est nécessaire, ne pas 'str'

Je suis en train de faire un modèle client-serveur, étant python programmation réseau, je suis bloqué sur une erreur qui stipule ce qui suit:-

tcpCliSoc.envoyer ("[%s] %s' % (octets(ctime(), 'utf_8'), données)) TypeError: un octets-comme l'objet est nécessaire, ne pas 'str'

Ici est le Serveur et le client de la mise en œuvre

Serveur TCP mise en œuvre

from socket import *  
from time import ctime

HOST = ''  
PORT = 21572  
ADDR = (HOST, PORT)  
BUFFSIZE = 1024  

tcpSerSoc = socket(AF_INET, SOCK_STREAM)

tcpSerSoc.bind(ADDR)
tcpSerSoc.listen(5)

while True:  
    print("waiting for connection......")  
    tcpCliSoc, addr = tcpSerSoc.accept()  
    print("connected from", addr)  

    while True:  
        data = tcpCliSoc.recv(BUFFSIZE)
        if not data:
            break
        tcpCliSoc.send('[%s] %s' % (bytes(ctime(), 'utf_8'), data))
    tcpCliSoc.close()
tcpSerSoc.close()

Client TCP mise en œuvre

from socket import *

__author__ = 'Lamer'

HOST = 'localhost'
PORT = 21572
ADDR = (HOST, PORT)
BUFFSIZE = 1024

tcpCliSoc = socket(AF_INET, SOCK_STREAM)
tcpCliSoc.connect(ADDR)

while True:
    data = input('>')
    if not data:
        break
    tcpCliSoc.send(data.encode())
    data = tcpCliSoc.recv(BUFFSIZE)
    if not data:
        break
    print(data.decode(encoding='utf-8'))

tcpCliSoc.close()
  • A part cela, vous devez utiliser sock.sendall() sur sock.send() 🙂
InformationsquelleAutor Payas Pandey | 2016-03-03