Ошибка типа: требуется байтоподобный объект, а не «str»

#python #sockets

Вопрос:

 import socket 
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connection.connect(("192.168.152.140", 4444))


connection.send("n[ ] connection established.n")

connection.close()
 

Комментарии:

1. Вы не сказали, в чем ваша проблема. Пожалуйста, дайте нам информацию о том, что вы пытаетесь сделать и что происходит не так

Ответ №1:

Попробуй это

 connection.send("n[ ] connection established.n".encode())
 

Это должно сработать

Ответ №2:

Ваша связь.аргумент отправки должен быть байтовым, но вы передаете строку. Вы должны закодировать его перед отправкой, например, message.encode(‘utf-8’)

 message = "n[ ] connection established.n";

connection.send(message.encode('utf-8'));
 

Ответ №3:

socket.send Функция ожидает байты, а не строку (документы)

Вам нужно преобразовать строку в байты перед отправкой: https://www.askpython.com/python/string/python-string-bytes-conversion

Вероятно, это должно выглядеть так:

 connection.send("n[ ] connection established.n".encode("utf-8"))