2

次のスクリプトを使用しています。

import socket
import struct

username = "username_value"
verification_key = "verification_key"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # boilerplate
s.connect(("example.com", 1234))  # adjust accordingly

# now for the packet
# note that the String type is specified as having a length of 64, we'll pad that

packet = ""

packet += struct.pack("B", 1)  # packet type
packet += struct.pack("B", 7)  # protocol version
packet += "%-64s" % username  # magic!
packet += "%-64s" % verification_key
packet += struct.pack("B", 0)  # that unused byte, assuming a NULL byte here

# send what we've crafted
s.send(packet)

次の応答を取得します。

    packet += struct.pack("B", 1)  # packet type
TypeError: Can't convert 'bytes' object to str implicitly

私は Python の初心者で、始めたばかりですが、言語は理解しています。私は読んで、パケットの使用方法を変更する Python 3 について何かを見つけました。なんだか絶望的です。ヘルプ?ありがとうございました

4

1 に答える 1

2

packetPython 3では、文字列をバイトとして暗黙的に定義する必要があります

packet = b""

それ以外のpacket = ""

于 2012-09-03T11:59:12.840 に答える