2012-11-13 4 views
0

Я создаю TcpListener, и я хочу, чтобы клиенты с других компьютеров могли присоединиться к моему слушателю.C# TcpListener внешний IP

Я читал и понимал, что мне нужно выполнить Port Forwarding, но для меня это не имеет никакого смысла - когда я публикую свое приложение, я хочу, чтобы другие люди создавали этого слушателя, и я не могу сказать их выполнять Port Forwarding.

Есть ли возможность создать TcpListener, с которым клиенты смогут присоединиться без переадресации портов? Спасибо.

+0

где вы узнали о том, что вы сделали для переадресации портов? –

+0

Добро пожаловать в stackoverflow. Этот вопрос может получить лучшие ответы, если вы сделаете это немного более ясным, я не совсем уверен, что вы просите. – brentonstrine

ответ

1

Хорошо, сначала попробуем очистить что-то.

Основная причина использования переадресации портов заключается в том, что у вас есть NAT-маршрутизатор перед внутренней сетью. Чтобы настроить перенаправление порта, необходимо указать маршрутизатору NAT переадресовать трафик на определенный порт в общедоступном интерфейсе на порт на внутреннем компьютере.

Если у вас нет NAT-маршрутизатора, вам не нужна переадресация портов.

Многие маршрутизаторы сегодня поддерживают UPnP, технику, чтобы любезно попросить маршрутизатор создать определенный порт вперед. Подходящей библиотекой для использования может быть ManagedUPnP.

Однако вам все же нужно выяснить общедоступный IP-адрес маршрутизатора и того порта, который вы открыли, и сообщить об этом другим приложениям.

Если ваш маршрутизатор не разрешает UPnP или существуют другие правила пожарной стены, вы не можете правильно настроить перенаправление портов.

0

Вы можете создавать серверные приложения и пересылать их на свой компьютер. Клиентское приложение (которое вы опубликуете) просто подключится к вашему компьютеру, чтобы они могли быть на NAT. Вы также можете комбинировать свое приложение с некоторыми страницами php/asp, но это зависит от данных, которые вы хотите отправить. Если это какая-то статистика ПК, например, время безотказной работы, аппаратное обеспечение и т. Д., Вы просто используете HTTP-запрос в клиентском приложении для созданного вами скрипта сайта (например, mypage.com/?uptime=100 & ram = 2gb & hash = xxxx и т. Д.)

0

Только сервер (компьютер, принимающий TCP-запросы) должен иметь перенаправленный порт.

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

Если вы делаете продукт, где ваши клиенты размещают услугу, им придется иметь дело с проблемами портов. В этом случае вы можете попробовать ManagedUPnP, например, Albin Sunnanbo предлагает или перенаправить их на один из многих сайтов, объясняющих, как настроить перенаправление портов.

Смежные вопросы