Python 蟒蛇3罐';t将字节转换为对象';str';含蓄

Python 蟒蛇3罐';t将字节转换为对象';str';含蓄,python,python-3.x,typeerror,python-sockets,Python,Python 3.x,Typeerror,Python Sockets,我在其他问题上尝试了一些解决方案,但没有解决。这是我的密码: #/usr/bin/env python #-*- coding: UTF-8 -*- import socket import sys ip = "192.168.0.28" port = 21 data = "hckn"*250 try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) conn = s.connect((ip,port)) except:

我在其他问题上尝试了一些解决方案,但没有解决。这是我的密码:

#/usr/bin/env python
#-*- coding: UTF-8 -*-
import socket
import sys
ip = "192.168.0.28"
port = 21
data = "hckn"*250
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    conn = s.connect((ip,port))
except:
    print("[-] Baglanti basarisiz")
    sys.exit()

s.recv(1024)
s.send("USER anonymous\r\n".encode('utf-8'))
s.recv(1024)
s.send("PASS anonymous\r\n".encode('utf-8'))
print("[+]Gizli baglanti saglandi")


s.recv(1024)

s.send('MKD'+data+'\r\n'.encode('ascii'))
print("Data yollandı")
s.recv(1024)
s.send('QUIT\r\n'.encode('utf-8'))
s.close()

print("[+]Program yakinda hata verecek...")
当我删除“encode”并运行Python2时,它工作正常。但不是在蟒蛇3上,它说

s、 发送('MKD'+数据+'\r\n'.编码('ascii'))


TypeError:无法将字节转换为对象“str”隐式

发生这种情况是因为缺少括号:

s.send(('MKD'+data+'\r\n').encode('ascii'))
#      ^                 ^
但典型的解决方案是只使用字节开始:

data = b"hckn"*250
s.send(b'MKD'+data+b'\r\n')

发生这种情况的原因是缺少括号:

s.send(('MKD'+data+'\r\n').encode('ascii'))
#      ^                 ^
但典型的解决方案是只使用字节开始:

data = b"hckn"*250
s.send(b'MKD'+data+b'\r\n')
在这方面:

s.send('MKD'+data+'\r\n'.encode('ascii'))
您需要在“MKD”+数据+“\r\n”周围放置parantises。像这样:

s.send(('MKD'+data+'\r\n').encode('ascii'))
在这方面:

s.send('MKD'+data+'\r\n'.encode('ascii'))
您需要在“MKD”+数据+“\r\n”周围放置parantises。像这样:

s.send(('MKD'+data+'\r\n').encode('ascii'))

Python 3中的默认编码是unicode,因此不需要指定
编码
(第2行)Python 3中的默认编码是unicode,因此不需要指定
编码
(第2行)