我正在寻找通过SPDY协议编写一些基本请求的脚本。该协议将您发送的帧定义为由非常特定的长度和字节顺序的二进制数据组成。
我只编写过跨套接字(HTTP)发送字符串的小程序。例如,如何实现SPDY控制帧头?例如,我尝试使用bitstring库和numpy来控制控制帧头中所有不同部分的大小,但实际上没有任何作用。当前用于Python的SPDY库使用cython和C数据类型,我发现它非常不可预测。我想知道如何使用纯python构建简单的请求,或者非常简单地如何构建类似于协议定义的东西并通过套接字发送它?
通常,bytearray
课堂将是您的朋友(如果我正确理解您的问题)。您可以通过套接字发送它:
my_bytes = bytearray()
my_bytes.append(123)
my_bytes.append(125)
// my_bytes is b'{}' now
s.send(my_bytes)
遵循协议规范并逐字节创建字节。当您接收数据时,这也适用:
data = s.recv(2048)
my_bytes = bytearray(data)
我对SPDY协议了解不多,但是例如控制位是消息中的第一位(不是字节)。您可以my_bytes
通过二进制AND检索它,例如:
control_frame = my_bytes[0] & 128
这是因为它128
是10000000
二进制文件,因此二进制文件AND只会给您第一位(请记住,每个字节有8位,这就是为什么我们有7个零)。
这就是手动完成事情的方式。当然,我建议使用一些库,因为编写适当的协议处理程序会花费很多时间,您可能会发现这很困难并且效率不高(当然取决于您的需求)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句