В последнее время я работал над сетевой игрой на C #/XNA, и сама сеть работала довольно хорошо, хотя у нас были задействованы только статические IP-адреса. Сейчас ситуация такова:

Мой компьютер находится за домашним маршрутизатором (которым я полностью управляю и использую DHCP), и этот маршрутизатор / подсеть находится за (возможно) маршрутизатором компании, потому что я получаю свой WAN IP через DHCP.

Как я могу ссылаться на мой компьютер через Интернет? Допустим, используя UdpClient.Функция Send() (которая принимает только IP-адрес и порт в качестве IPEndpoint рядом с данными)? Или это даже невозможно, и мне нужно создать виртуальную сеть, чтобы иметь возможность напрямую обращаться к компьютерам?

(Использование WAN-адреса dhcp-d не дает успеха, и я абсолютно не контролирую маршрутизатор компании.)

1 ответ1

1

Если вы можете подключиться (например, пинговать) к домашнему маршрутизатору по внешнему IP и:

  1. если вы используете NAT, то вы хотите включить переадресацию портов на маршрутизаторе на IP вашего компьютера. Возможно, вы захотите дать ПК статический IP для этого. Или введите в DHCPd запись для своего MAC-адреса, чтобы он всегда получал один и тот же IP-адрес при выполнении запроса DHCP.
  2. Если у вас дома есть собственный IP-рейнджер, тогда NAT не нужен, и вы просто сможете подключиться к ПК, если у вас не настроен брандмауэр для блокировки доступа.

Что касается роутера компании. Это не должно иметь значения. Пока вы можете подключиться к случайному компьютеру в Интернете, он также должен работать для вашей домашней сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .