X11协议中String8(ListOfCARD8)的长度

时间:2010-03-02 16:37:27

标签: x11 protocols

我正在研究X11的代理服务器,它还会对某些数据进行一些轻微的数据操作(颜色深度,水印等等)。我已经连接并运行了,我正在操作177 / UDP连接中的服务器IP,因此客户端通过代理正确连接而不是调用服务器。换句话说,我有一个功能齐全的代理,通过端口6000从客户端到服务器代理数据。

我现在要做的是解析数据流并找到每条消息的开头和类型,以便从我需要操作的数据中清除我刚刚传递的数据。但是,我很早就遇到了障碍。

我从客户端获得的数据是带有字节顺序的单个字节(在我的情况下为'B',但我支持两者),后面是主要版本(3)的2个字节和2个字节对于次要版本(11)。这两个都在协议规范(http://tools.ietf.org/html/rfc1013)中被指定为CARD16。 以下是AuthorizationName,表示STRING8类型的授权类型。 STRING8在文档中指定为LISTOFCARD8,表示8位无符号整数的列表。

问题出在哪里:我没有丝毫LISTOFCARD8多长时间。 从规范中删除:“长度字段的大小可能会有所不同(不是 必须与FOO相同的大小),在某些情况下可能是隐含的, 并且未在本文档中详细说明。“。

从数据流中的字节5开始,我得到的实际数据是0 0 12 0 10 0 0,然后是实际数据流(ASCII字符串“MIT-MAGIC-COOKIE-1”)。我无法从它前面的字节中找出有效的字符串长度,并且字符串本身似乎不会以空值终止。

所以,就我的问题而言,如果它还没有出现:如何确定ListOfFOO的长度,或者更具体地说是ListOfCARD8的长度,如RFC 1013中所述?

谢谢! // Eric Johansson

1 个答案:

答案 0 :(得分:1)

RFC 1013是X11协议规范中一个从未使用过的,已过时且已过时的预发行版本,应该在阅读之前刻录,并且从未使用过。

可以在http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.htmlhttp://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.pdf

找到正确的当前X11协议规范
相关问题