2008-09-15 28 views
0

我在爲傳統XWindows應用程序開發時遇到了一個有趣的問題。XWindow忽略同一秒內發送的多個ClentMessage

由於無法解釋的原因,我將ClientMessage從命令行實用程序發送到GUI應用程序。消息的大部分最終具有相同的內容,因爲消息的目的是觸發同步通信過程在一些側管上。我注意到有些時候我會發送兩條消息,但只有一條會被髮送。我追溯到這兩個消息具有相同的內容,並在同一秒發送(IOW,發送日誌時間戳是相同的數字)的事實。一旦我在消息中添加了一些虛擬內容以使它們完全不同,問題就消失了。

這發生在兩個不同的X服務器上:vncserver和Exceed。我是否碰到了一些我不知道的XWindows功能 - 某種消息調節/壓縮?有沒有人遇到過這種事情?

+0

您可能希望將其作爲XWindow而不是XWindows進行重新標記。 http://en.wikipedia.org/wiki/XWindow – hoyhoy 2008-09-19 22:21:03

回答

0

X服務器不應該壓縮我知道的客戶端消息,但也許有些X工具包(Motif,Xaw等)會壓縮它們。這是我要尋找的第一件事情 - 也許在應用程序代碼看到它之前,接收消息的GUI應用程序正在壓縮工具包內的某個位置。

然後,vncserver和exceed都可能比其他X服務器更注重遠程使用,並且可能會包含一些不明智的壓縮黑客。我已經閱讀了許多X規範並編寫了很多X代碼,但從未聽說過這種行爲。

一個隨機的不太可能的想法,確保你的命令行應用程序的末尾有一個XFlush()或XSync(),然後退出,以確保在關閉之前將這些消息寫入套接字。但是我不知道爲什麼消息內容會影響問題。

+0

感謝您的回答。 X端的工具包是Open Interface(神經元數據),上帝幫助我。我會保持睜大眼睛... – Arkadiy 2008-09-16 12:11:18