Я пытаюсь создать одноранговую игру, где каждый игрок является одновременно сервером и клиентом с сокетами tcp. Сокеты могут подключаться отлично, когда я использую локальный ip: s, но, конечно, не удается, когда я пытаюсь использовать внешние ip: s.Если он знает мой внешний адрес и порт, может ли другой компьютер из Интернета запустить tcp-сокет в сторону моего компьютера? (Без переадресации портов)
Но я думаю, что игроки должны иметь возможность подключаться друг к другу, если они просто знают внешний адрес + порт, который назначает им маршрутизатор. Настройка перенаправления портов отключена, если у меня нет доступа к игровым маршрутизаторам.
Im думает о наличии сервера между ними, чтобы иметь возможность читать внешний адрес и порт игроков и сообщать об этом другому игроку, чтобы он мог подключиться.
Но я не нашел никакой информации нигде, если это так, как работает переадресация портов. Если компьютер A отправляет запрос с локального адреса и порт на сервер, а маршрутизатор назначает этот адрес + порт внешнему адресу + порту, а сервер указывает компьютеру B, адрес + порт которого должен использоваться. Может ли компьютер B использовать этот внешний адрес + порт для подключения к компьютеру A и запустить с ним tcp-сокет? Есть ли способ узнать, что этот внешний адрес + порт остается прежним, когда другой компьютер делает запрос против них?
как вы справляетесь с брандмауэром и ISP-блоком какого-либо порта? создать какой-то сервер vpn или туннелирование, чтобы это имело смысл для меня –