XWindow игнорирует несколько отправленных ClentMessage в течение одной секунды - PullRequest
0 голосов
/ 15 сентября 2008

Я столкнулся с интересной проблемой при разработке для нашего старого приложения XWindows.

По причинам, которые не имеют объяснения, я отправляю ClientMessage из утилиты командной строки в приложение с графическим интерфейсом. Большинство сообщений в конечном итоге имеют одинаковое содержимое, так как целью сообщения является запуск процесса синхронной связи через некоторые боковые трубы. Я заметил, что иногда я отправляю два сообщения, но доставляется только одно. Я связал это с тем фактом, что оба сообщения имели одинаковое содержимое и были отправлены в одну и ту же секунду (IOW, отметка времени в журнале при отправке была одним и тем же номером). Как только я добавил в сообщения какое-то фиктивное содержимое, чтобы они стали другими, проблема исчезла.

Это произошло на двух разных X-серверах: vncserver и Exceed. Я использую функцию XWindows, о которой я не знаю - какое-то регулирование / сжатие сообщений? Кто-нибудь сталкивался с такими вещами?

1 Ответ

0 голосов
/ 16 сентября 2008

X-сервер никогда не должен сжимать клиентские сообщения, о которых я знаю, но, возможно, некоторые X-инструментарии (Motif, Xaw и т. Д.) Сжимают их. Это первое, на что я обращаю внимание - возможно, приложение с графическим интерфейсом, получающее сообщение, сжимается где-то внутри инструментария, прежде чем код приложения увидит его.

С другой стороны, и vncserver, и более вероятно, скорее сосредоточены на удаленном использовании, чем другие X-серверы, и, возможно, они могут содержать некоторые необдуманные хакерские атаки. Я прочитал много X-спецификаций и написал много X-кода, но никогда не слышал об этом.

Случайно маловероятная мысль, убедитесь, что у вас есть XFlush () или XSync () в конце вашего приложения командной строки до его выхода, чтобы быть уверенным, что вы записываете эти сообщения в сокет до закрытия. Но я не знаю, почему содержание сообщения будет иметь значение, если это проблема.

...