Websocket树桩

时间:2018-08-25 14:48:38

标签: websocket network-programming webserver

我正在编写嵌入式WebSocket服务器,并直接从相关的RFC工作。

我的服务器正确响应了来自浏览器的升级请求,并且浏览器以其示例javascript继续通过新建立的套接字发送短消息。所以一切正常。

该消息很短(完整的帧只有21个字节),并且包含我的服务器愉快地解码的所有相关字段。

树桩器位于第9至15位,应该包含有效载荷的长度。

这是WireShark上捕获的消息的十六进制转储:

81 8f 11 ab d5 0b 5c ce a6 78 70 cc b0 2b 65 c4 f5 78 74 c5 b1

因此您可以看到,第一个字节包含FIN(1位),RSVD1(1位),RSVD2(1位),RSVD3(1位)和操作码的4位。到目前为止一切都很好。

8f是树桩机:包含MASK位和有效载荷长度,MASK位设置为1可以,但是当整个帧只有21个字节长并且其余7位时,其余7位的值为71(0x47)。有效载荷只有15个字节长。

那我在做什么错了?

我可以通过对有效负载应用XOR掩码来解码消息,但是长度是问题所在,因为它控制着解码循环并进行71次迭代,而不是应进行的15次迭代。

我很感谢有任何关于做错事情的线索

谢谢

1 个答案:

答案 0 :(得分:0)

问题是我的结构没有考虑到AMD 64处理器的耐久性!!!有时候答案就在那里;-)

相关问题