问题
I have programs running both locally and on a citrix session. I need to send a one-bit message from the program running locally, to the program running on the citrix session in a very reliable way. The client is named MetaFrame Presentation Server Client. So far I have thought about the following methods.
- Utilizing TCP/IP. This, however, adds complexity and I am worried about whether internal firewall settings between various company locations will hinder this communication. This will be my preferred option, however, if everything else fails.
- Utilizing the shared clipboard to briefly send a message. This method has obvious problems
- Sending a keystroke, which will be intercepted by the program running on the session. This method has obvious problems
- Utilizing a common file server. The problem is that the file servers are very unreliable.
I am not looking for arguments for or against any of the mentioned methods. Instead I would like to know whether you can think of another method?
回答1:
Are you trying to send the message from the computer running the ICA client (nowadays called Citrix receiver) to the Citrix server (aka XenApp, Presentation Server, Metaframe)?
If the answer is yes, then you should use a virtual channel for communication. Here is a link to the virtual channel SDK.
Background: the Citrix client and the Citrix server obviously need to exchange information (graphics, keyboard, mouse, audio, ...). They communicate over so-called virtual channels which is a logical layer on top of the existing network connection. The neat thing is that the virtual channels are extensible using an SDK, i.e. you can write your own virtual channel to securely and reliably exchange information between client and server.
来源:https://stackoverflow.com/questions/4389062/sending-message-to-citrix-session