Не отправляется сообщения от клиента к серверу через socket

Решил сделать простенький чат client-server с использованием tkinter для клиента, чтобы была визуализация самого чата. Сервер подтверждает подключение клиента, но сообщения не отправляются и вылезает такая ошибка:

File "", line 35, in send
    client.send(message)
TypeError: a bytes-like object is required, not 'str'
import socket
import threading


server = socket.socket(
    
    socket.AF_INET,
    socket.SOCK_STREAM,
    
)


server.bind(
    ("127.0.0.1", 1234)
)

server.listen(5)
print("Server is listening")

users = []


def send_all(data):
    for user in users:
        user.send(data)


def listen_user(user):
    print("Listening user")

    while True:
        data = user.recv(2048)
        print(f"User sent {data}")

        send_all(data)


def start_server():
    while True:
        user_socket, address = server.accept()
        print(f"User <{address[0]}> connected!")

        users.append(user_socket)
        listen_accepted_user = threading.Thread(
            target=listen_user,
            args=(user_socket,)
        )

        listen_accepted_user.start()

Клиент:

import socket
from tkinter import *
from threading import Thread


#init Tkinter
root = Tk()
App = root
root.title("Client-chat")
root.configure(bg = "#DEE2E3")
App.geometry("400x450")

client = socket.socket(

    socket.AF_INET,
    socket.SOCK_STREAM,

)

client.connect(
    ("127.0.0.1", 1234)
)

#chat
def listen_server():
    while True:
        data = client.recv(2048)
        print(data.decode("utf-8"))


def send():
    listen_thread = Thread(target=listen_server)
    listen_thread.start()
    message = typeBox.get()
    client.send(message)
    data = client.recv(2048)
    print(data)

    while True:
        client.send(input().encode("utf-8"))


#Input
typeBox = Entry(root, text = '');
send = Button(root, text = 'Send', bg = "#A0DEF2", font = ('times', 14, 'bold'), command = send)
typeBox.pack(side = BOTTOM, fill = X);
send.pack(side = BOTTOM, fill = X);

root.mainloop()

Ответы (1 шт):

Автор решения: Shamus Rezol

Ошибка сообщает, что метод отправки принимает закодированную строку. То есть вида b"Text". Если строка уже задана в переменную string, то используйте string.encode().

→ Ссылка