首先说句对不起,因为时间紧急,没有看吧务置顶就发帖了。如果有不对之处请各位谅解。
下面说问题:
RTMP协议问题。本人做了一个c++端的RTMP Server,作用是为了实现rpc,我们也只使用了rpc功能。但是根据rtmp协议,协议头的长度应该是1,4,8,12。而且协议中也明确说明了,当协议头长度为4的时候,该包和上一个包具备相同的bodysize和type。可是实际中,我用嗅探器抓包发现,0x14包之间穿插的0x03包的协议头长度居然是4个字节。导致了我解析的时候出错,把0x03包当做0x14包处理。
我想请问这是为什么?按说body长度发生变化和type都发生了变化,flash应该会给我一个12长度完整头的包,结果却没有。不知是我对协议的理解不够还是因为其他的?还有就是协议头中的时间戳有什么具体的作用?我看好像在媒体流的时候会有用,但是我只用了rpc功能,所以时间戳一律给的是0,是不是这里产生的问题?
下面说问题:
RTMP协议问题。本人做了一个c++端的RTMP Server,作用是为了实现rpc,我们也只使用了rpc功能。但是根据rtmp协议,协议头的长度应该是1,4,8,12。而且协议中也明确说明了,当协议头长度为4的时候,该包和上一个包具备相同的bodysize和type。可是实际中,我用嗅探器抓包发现,0x14包之间穿插的0x03包的协议头长度居然是4个字节。导致了我解析的时候出错,把0x03包当做0x14包处理。
我想请问这是为什么?按说body长度发生变化和type都发生了变化,flash应该会给我一个12长度完整头的包,结果却没有。不知是我对协议的理解不够还是因为其他的?还有就是协议头中的时间戳有什么具体的作用?我看好像在媒体流的时候会有用,但是我只用了rpc功能,所以时间戳一律给的是0,是不是这里产生的问题?
