p2p
п.с. желательно оставить пример кода
А что значит перенаправлял соединение? Если оба клиента в одной сети, тогда вам достаточно узнать адрес второго клиента и соединяться прямо с ним.
вся проблема в том, что почти у всех нет внешнего IP. Так какой адрес тогда передавать?
В любом случае всякое промежуточное устройство вроде того же прокси-сервера знает, через какой сокет обратилось к нему конечное устройство, и перенаправит пакет куда нужно. То есть, вам вовсе не обязательно знать локальный IP-адрес компьютера в сети, это за вас будет помнить промежуточное устройство. Понимание принципа работы промежуточного устройства решит вашу задачу, поскольку формально вы делаете что-то подобное прокси-серверу.