我用范围监控X11协议。我监控 X11 协议是因为我尝试解决 Swing 和 MPX 的一些焦点问题。我注意到当发生焦点错误时会传输以下数据包。如何从这条消息中得出结论?我还是不知道什么是无效的。你有什么主意吗?
614.21: 32 bytes <-- X11 Server
Read from fd 8
a1 20 c2
0b 07 00 c0 00 68 01 00 00 71 01 00 00 21 9f 6a 01 00 00 00 00 00 00 00 00 00
00 00 00 Event (fd 8): a1 20 c2
0b 07 00 c0 00 68 01 00 00 71 01 00 00 21 9f 6a 01 00 00 00 00 00 00 00 00 00
00 00 00
..............EVENT: **INVALID** (161)
format: 20
sequence number: 0bc2
window: WIN 00c00007
type: ATM 00000168 <WM_PROTOCOLS>
data: 71 01 00 00 21 9f
: 6a 01 00 00 00 00
: 00 00 00 00 00 00
: 00 00
Have 0 need 32
=====编辑=====
我认为客户端(我的应用程序)和窗口管理器之间存在一些错误。我想是的,因为有<WM_PROTOCOLS>
。
答案1
xscope 1.4 及更早版本有一个错误,导致它为另一个客户端通过 SendEvent 请求发送的事件打印 INVALID 输出,这会导致发送事件 id 的第 8 位。这实际上是一个ClientMessage
事件(161 - 128 = 33,这是 的事件代码ClientMessage
)。