#python #сокет #python_3x
Собственно, ошибка: TypeError: a bytes-like object is required, not 'str' Ошибка в строке " sock.send('Hello, World") " Ошибка нашлась в приложении клиента, вот собственно код клиента: import socket sock = socket.socket() sock.connect(('localhost', 9090)) sock.send('hello, world!') data = sock.recv(1024) sock.close() print(data) Вот код сервера: import socket sock = socket.socket() sock.bind(('', 9090)) sock.listen(1) conn, addr = sock.accept() print('connected:', addr) while True: data = conn.recv(1024) if not data: break conn.send(data.upper()) conn.close() Я этот пример вообще списал, т.к только-только (буквально пару минут назад) начал изучение сокетов, а тут такое.
Ответы
Ответ 1
Метод socket.send ожидает последовательность байтов, а не строку. Чтобы преобразовать строку в последовательность байтов, можно воспользоваться методом str.encode: sock.send("hello, world!".encode()) Аналогично, если вы хотите получить не последовательность байтов, а строку, то можно воспользоваться методом str.decode: data = sock.recv(1024).decode() По умолчанию в качестве кодировки будет использован UTF-8.
Комментариев нет:
Отправить комментарий