我是python的新手,这是问题所在; \

时间:2019-12-11 17:34:07

标签: python python-3.x

import socket
my_socket=socket.socket()
my_socket.connect(('127.0.0.1',8820))
my_socket.send('Hadar')
data=my_socket.recv(1024)
print ('The server sent: '+data)
my_socket.close()

它说:TypeError: a bytes-like object is required, not 'str'

当我在此行之前添加“ b”时:

my_socket.send(b'Haddar')

上面写着"TypeError: must be str, not bytes" 而且我确实希望字符串类型的输出写为“ Hello :(服务器发送的内容)Hadar(客户端发送的内容)

1 个答案:

答案 0 :(得分:0)

在发送之前,您必须在utf-8中对字符串进行编码。

发送时只需调用"random_string".encode()方法,接收时只需调用.decode()

更多信息,https://docs.python.org/3/library/socket.html#socket.socket.send

这必须工作:

my_socket.send('Hadar'.encode())
...
print ('The server sent: '+data.decode())