我在將 bytearray 發送到套接字時遇到問題。我正在嘗試登錄游戲服務器,我需要使用位元組指定游戲版本。這就是我所擁有的:
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 的套接字?謝謝。
uj5u.com熱心網友回復:
一個位元組最多只能達到 255 - 8 個二進制數字可以從 00000000 到 11111111。如果你認為你需要把數字 340 - 二進制 101010100 - 放在一個位元組中,那么我不知道該告訴你什么。它不適合。這就像問如何用 2 位數字寫出數字 567。
如果您確定 340 是正確的數字,那么它可能需要分成兩個位元組:101010100 -> 1 01010100 -> 00000001 01010100 或可能是 01010100 00000001。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/360432.html
