Невозможно подключиться к IP-адресу локальной машины, используя IP-адрес в Интернете. - PullRequest
2 голосов
/ 30 марта 2012

Я провел последний месяц за написанием многопользовательской игры. Я тестировал его только на одной машине, используя 127.0.01: 9051 в качестве IPEndPoint.

Я изменил IP-адрес на свой WAN IP, настроил переадресацию портов на маршрутизаторе, настроил программный брандмауэр и т. Д. Но он не подключается.

Я проверил, открыт ли порт, используя этот сайт . Результат: порт действительно открыт.

Кроме того, когда я проверяю порт с этого сайта, мой сервер получает пакеты просто отлично; однако, когда я подключаюсь со своей собственной машины ... он ничего не получает.

Я разбил все на части, чтобы убедиться, что это не проблема с моим кодом.

Этот основной код не работает:

IPEndPoint iep = new IPEndPoint(IPAddress.Parse("XXX.XXX.XXX.XXX"), 9051);
TcpClient client = new TcpClient();
client.Connect(iep);

Любые идеи очень ценятся.

Ответы [ 4 ]

3 голосов
/ 30 марта 2012

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

[Интернет] - снаружи IP [Маршрутизатор / межсетевой экран] insideIP1 - insideIP2 [Компьютер]

В этом случае пакеты из изнутри IP (X) не смогут подключиться к за пределами IP .

0 голосов
/ 30 марта 2012

Использует ли ваш клиент и ваш сервер (оба на одной и той же машине в вашем неудачном тесте) один и тот же ip / порт конечной точки?Вы можете связать порт только один раз за раз.Попробуйте использовать два порта: один для сервера, другой для выхода сервера (в клинике).Таким образом, они не будут сталкиваться.Используйте Telnet, чтобы проверить, можете ли вы подключиться к используемым вами IP / портам, и Netstat, чтобы убедиться, что они еще не используются.

0 голосов
/ 30 марта 2012

Вы можете использовать Dyndns или какой-либо другой сервис для внешнего мира, чтобы подключиться к вашему серверу и вставить то же имя в файл хоста, который разрешается в 127.0.0.1, чтобы вы могли подключаться внутри.

0 голосов
/ 30 марта 2012

Попробуй посмотреть, сможешь ли ты подключиться по telnet к своему IP-адресу WAN через порт 9051. Маршрутизаторам не очень нравится, когда ты подключаешься к их WAN IP из самой сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...