I';我是python新手,这就是问题所在\

I';我是python新手,这就是问题所在\,python,python-3.x,Python,Python 3.x,它说:TypeError:需要一个类似字节的对象,而不是“str” 当我在这行前面加上“b”时: 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:必须是str,而

它说:
TypeError:需要一个类似字节的对象,而不是“str”

当我在这行前面加上“b”时:

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:必须是str,而不是bytes”

我确实希望字符串类型的输出写“Hello:(服务器发送的内容)Hadar(客户端发送的内容)

在发送字符串之前,必须将字符串编码为
utf-8

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

更多信息请访问

这必须起作用:

my_socket.send(b'Haddar')

您是否也尝试过在问候语前放置
b
打印(b'服务器发送:'+数据)
您是否在同一行上收到错误(使用
发送
方法?)哪一行抛出了第一个
TypeError
?请用回溯更新您的问题。@JoseKilo是的,我有…仍然没有工作,但它打印:服务器发送:没有服务器发送的内容…@user12519892这完全取决于服务器端脚本发送的内容。
导入套接字我的\u socket=socket.socket()my_socket.connect('127.0.0.1',8820))my_socket.send('Hadar.encode())data=my_socket.recv(1024)print('server sent:'+data.decode())my_socket.close()
my_socket.send('Hadar'.encode())
...
print ('The server sent: '+data.decode())