There is no guarantee that TCP/IP ports will be open between client and XenApp server, especially when the XenApp server is being access remotely.
Citrix offers a mechanism called Virtual Channels which are specifically designed for communication between client and server and device redirection is a typical usage.
A Citrix virtual channel is a bi-directional error-free connection used for the exchange of generalized packet data between a Citrix host for online delivery (XenApp or XenDesktop) and the Citrix Receiver online plug-in. For example: sound, graphics, client drive mapping, and printing are just a few of the virtual channels written by Citrix. The Citrix Virtual Channel Software Development Kit (VCSDK) allows software engineers to write both host-side applications and receiver-side drivers to support additional virtual channels using the Citrix ICA protocol. The host-side virtual channel applications run on XenApp or XenDesktop, and the client-side portion of the virtual channel runs on the local device where Citrix Receiver resides. This SDK provides support for writing new virtual channels for the Win32 and Windows CE versions of the online plug-ins for Citrix Receiver. See the accompanying documentation for detailed information about the client versions supported.