Я пытаюсь поэкспериментировать с пробивкой отверстий UDP, чтобы попытаться подключить 2 компьютера. 2 компьютера, которые я пытаюсь подключить, находятся на 2 разных Wi-Fi, созданных одним и тем же маршрутизатором. Назовем эти компьютеры С1 и С2. Итак, я хочу создать связь между C1 и C2. У меня есть 2 общедоступных IP-адреса сервера, на которых я запускаю сервер прослушивания UDP. Это серверы S1 и S2.
Эксперимент 1:
Эксперимент 2:
Итак, теперь и C1, и C2 доступны с S1. ПРИМЕЧАНИЕ. Я вижу, что IP_C1 и IP_C2 одинаковы, поэтому давайте назовем их IP_C. Однако порты разные.
Продолжая это, я попытался отправить сообщение с C1 на C2, используя IP_C и PORT_C2 в качестве пункта назначения. C2 не получил сообщение должным образом. Затем я отправляю сообщение от C2 к C1, используя IP_C и PORT_C1. Вот где я начинаю застревать: я ожидал, что теперь сообщение C2 достигнет C1, поскольку C1 уже пробил дыру в NAT, идущем на C2. Но C1 не получает сообщение. Продолжая, если я сейчас отправлю другое сообщение от C1 и C2. C2 не понимает. Но даже сейчас, если я отправлю сообщение с S1 на C1 или C2, оно работает.
Эксперимент 3:
Чтобы проверить, сохраняются ли IP и порт, когда клиент отправляет другой пакет UDP, я сделал следующее:
Как и S1, S2 также легко подключается, и я вижу IP_C1 = IP_C1_S2 = IP_C2 = IP_C2_S2 = IP_C и PORT_C1 = PORT_C1_S1 и PORT_C2 = PORT_C2_S2.
Так что порты поддерживаются.
Даже при таком сценарии я не могу установить связь между C1 и C2. Поэтому я не уверен, почему не работает связь между C1 и C2. Как это сделать?
Спасибо