我正在通过TCP套接字接收数据,尽管此代码已经使用了很多年,但是我遇到了一个非常奇怪的行为,试图将新设备(充当服务器)集成到我的系统中:
在接收到HTTP Body响应之前,recv()内核函数会给我一些奇怪的字符,例如'283'或'7b'。
我不确定我应该提供什么其他信息,我也不知道还有什么尝试。
答案 0 :(得分:0)
找到了。问题是我没有考虑Transfer-Encoding,这是分块。我很幸运,因为Wireshark的较旧版本还在有效负载中显示了这些字节,因此其他人也在Wireshark论坛中发布了类似的问题。
这些“奇怪的”字节显示您应该接收的有效载荷长度。读取完该字节数后,您将再次收到一个数字,该数字告诉您是否应继续读取(以及再次接收多少个字节)。据我了解,当您拥有动态变化的数据并且您可能希望不断获取其当前值时,这很有用。