我尝试在python im中实现我自己的Websocket服务器,遵循rfc6455规范,im在从基帧头提取比特时遇到问题
我没有问题的协议,我有问题的基本二进制/十六进制数学魔术
根据规范,前4位是单位值
所以为了得到第一位,我做了这样的事情(d是我从websocket获得的数据)
first_byte = ord(d[0])
print "finished bit",(first_byte >> 7) & 1
以后如果我想知道有效载荷的大小
^{pr2}$但是在后面的规范中,我需要为操作码获取一个4位值 这是我需要的帮助,也许甚至是一个链接到这个数学是如何工作的我谷歌/达克我的大脑大部分结果是从stackoverflow
更多的修补和它开始到位,我已经在这个问题上坚持了大约4天,仍然没有解决任何人可以提供的信息。在
如果只需要考虑第一个(最重要的)4位,则需要右移4位(如果您的值在0-255范围内,但它甚至会强调您感兴趣的位),则需要右移4位。E、 g
从{cd4}中得到{cd4}是新的{cd4},因此{cd4}是^新的{cd4},因此^ 4}是{cd4>
一般来说,考虑像
abcd efgh
这样的八位字节,其中每个字母都是一位。你必须转移和和,以便分离出你感兴趣的部分。E、 假设你的规范说cd
位定义了四种不同的东西。为了得到这个0-3的数字,再右移4,加上3,就是0000 0011
,也就是说,你“隔离”了你想要的位。在相关问题 更多 >
编程相关推荐