>GoToMyPC allows bidirectional communication between the client (any browser) and a host computer. The host computer can be behind a router and still be accessible to the client anywhere on the internet. This is done despite the fact that no router port-forwarding rules exist.
>
>As I understand it, the host computer stays in contact with GTMPC servers and when a client connects to GTMPC, the GTMPC servers pass along the connection info to the client to permit direct communication (or something to that effect).
>
>Let's say I wanted to allow bidirectional communication between an internet client and a host computer behind a router without having to configure port-forwarding on the router. What are the options to accomplish something like this?
What information do you want to exchange?
WebSockets (
http://en.wikipedia.org/wiki/WebSocket) can be used to set up a bi-directional TCP/IP connection between client and server without routing problems. In the .NET world WCF can use two-way TCP/IP communication ; SignalR will do the same and fall back to long polling if WebSockets is not available.