VRPN 06.04

VRPN main page

Obtaining VRPN

VRPN Support

Installing and Testing

Compiling and Modifying

Client code

Server code

Troubleshooting

Connections

Logging and Playback

Shared Objects

Sound

Clock Synchronization

Text Messages

Doxygen documentation

VRPN on PDAs

Coming attractions & suggestions

UNC-specific information

Forwarding

The vrpn_ConnectionForwarder and vrpn_StreamForwarder utility classes have been written to automate forwarding messages from one connection over another connection. For instance, in the distributed nanoManipulator, messages from a scanning probe microscope arrive at the main controller process over a vrpn_Connection. From there we also want to send them to a graphics process on another host. We open a second vrpn_Connection to the graphics host, create a vrpn_StreamForwarder between the two connections, and instruct it to forward messages of the types the graphics process needs to receive. After that, all we have to do is make sure both vrpn_Connection's mainloop()s get called regularly and the message streams will flow as necessary.

We can also create remote-controlled forwarders without having to code them explicitly. A VRPN server which has a vrpn_Forwarder_Server running can be contacted by a vrpn_Forwarder_Controller and instructed to open new server ports and forward arbitrary message types over them. In the above example, instead of forwarding via the main controller process the controller could instruct the microscope to open a connection on well known port and forward the important messages there, and the graphics host could connect directly to the microscope, reducing network latency by one hop.