我怎样才能克服 Python 最大字节范围
How can I overcome Python max byte range
我在将字节数组发送到套接字时遇到问题。我正在尝试登录游戏服务器,我需要使用字节指定游戏版本。这是我的:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 10000, 10000))
s.connect(("127.0.0.1", 25565))
handshake = bytearray([6,0,340,0,0,69,2]) #2nd index specifies the game version (340)
s.send(handshake)
#[...]
问题是我得到这个错误:
Traceback (most recent call last):
File "c:\Users\Leon\Desktop\mc\mc_protocol.py", line 11, in <module>
handshake = bytearray([6,0,340,0,0,69,2])
ValueError: byte must be in range(0, 256)
那么有什么方法可以将字节发送到高于256的套接字?谢谢
一个字节只能达到 255 - 8 个二进制数字可以从 00000000 到 11111111。如果你认为你需要把数字 340 - 二进制 101010100 - 放在一个字节中那么我不知道该说什么你。它不适合。这就像问如何用2位数字写出数字567。
如果您确定 340 是正确的数字,那么它可能需要分成两个字节:101010100 -> 1 01010100 -> 00000001 01010100 或者可能是 01010100 00000001。
我在将字节数组发送到套接字时遇到问题。我正在尝试登录游戏服务器,我需要使用字节指定游戏版本。这是我的:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.ioctl(socket.SIO_KEEPALIVE_VALS, (1, 10000, 10000))
s.connect(("127.0.0.1", 25565))
handshake = bytearray([6,0,340,0,0,69,2]) #2nd index specifies the game version (340)
s.send(handshake)
#[...]
问题是我得到这个错误:
Traceback (most recent call last):
File "c:\Users\Leon\Desktop\mc\mc_protocol.py", line 11, in <module>
handshake = bytearray([6,0,340,0,0,69,2])
ValueError: byte must be in range(0, 256)
那么有什么方法可以将字节发送到高于256的套接字?谢谢
一个字节只能达到 255 - 8 个二进制数字可以从 00000000 到 11111111。如果你认为你需要把数字 340 - 二进制 101010100 - 放在一个字节中那么我不知道该说什么你。它不适合。这就像问如何用2位数字写出数字567。
如果您确定 340 是正确的数字,那么它可能需要分成两个字节:101010100 -> 1 01010100 -> 00000001 01010100 或者可能是 01010100 00000001。