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())