XWindow ignora vários ClentMessage enviados durante o mesmo segundo

StackOverflow https://stackoverflow.com/questions/66111

  •  09-06-2019
  •  | 
  •  

Pergunta

Encontrei um problema interessante durante o desenvolvimento de nosso aplicativo legado XWindows.

Por motivos que não valem a pena explicar, estou enviando ClientMessage de um utilitário de linha de comando para um aplicativo GUI. A maioria das mensagens acaba tendo o mesmo conteúdo, pois o objetivo da mensagem é acionar um processo de comunicação síncrona em alguns canais laterais .Percebi que às vezes eu enviava duas mensagens, mas apenas uma era entregue.Eu atribuí isso ao fato de que ambas as mensagens tinham o mesmo conteúdo e foram enviadas no mesmo segundo (IOW, o carimbo de data e hora do log no envio era o mesmo número).Assim que adicionei alguns conteúdos fictícios às mensagens para torná-las todas diferentes, o problema desapareceu.

Isso aconteceu em dois servidores X diferentes:vncserver e Exceed.Estou acessando algum recurso do XWindows que não conheço - algum tipo de limitação/compactação de mensagens?Alguém já encontrou esse tipo de coisa?

Foi útil?

Solução

O servidor X nunca deve compactar mensagens de clientes que eu saiba, mas talvez alguns kits de ferramentas X (Motif, Xaw, etc.) as compactem.Essa é a primeira coisa que eu procuraria - talvez o aplicativo GUI que recebe a mensagem esteja compactando em algum lugar dentro do kit de ferramentas, antes que o código do aplicativo o veja.

Então, novamente, tanto o vncserver quanto o excel provavelmente se concentram mais no uso remoto do que outros servidores X, e podem conter alguns hacks de compactação imprudentes, concebivelmente.Eu li muitas especificações do X e escrevi muitos códigos do X e nunca ouvi falar desse comportamento.

Um pensamento aleatório e improvável, certifique-se de ter um XFlush() ou XSync() no final do seu aplicativo de linha de comando antes de sair, para ter certeza de escrever essas mensagens no soquete antes de fechá-lo.Mas não sei por que o conteúdo da mensagem seria importante se esse fosse o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top