Это не так, как это работает.Маршрутизатор выполняет NAT , что означает, что он перезаписывает данные таким образом, что ваше приложение будет получать пакеты, предназначенные для него, даже если другой конец отправляет на общедоступный IP-адрес вашего маршрутизатора, пока вы инициируете соединение свнутри маршрутизатора.
Если оба конца находятся за NAT, вам обычно необходим общедоступный сервер, который может быть посредником ( описание )