If the remote computer has a real IP address and
is accessible via the Internet, you can connect to it directly.
If the IP address is dynamic (different each time) then you can
use any third party program to learn the IP address or to map the
IP address to a static DNS name.
If the remote computer has a virtual IP address
or is not accessible directly via the Internet:
You can configure proxies/routers that have both direct
Internet access and remote computer access for port
forwarding.
You can use third party software for tunneling or callback
connection to create a virtual TCP/IP connection.