2015-10-21 3 views
0

Я как бы начинающий программист, поэтому я не знаю, что я могу спросить, даже возможно. Я хочу сделать TCP/IP-соединение с сервером через WAN.Как открыть порты через C#?

Как программы клиента, так и серверы были выполнены мной, они отлично работают в локальной сети. Я сейчас пытаюсь использовать WAN. Я знаю IP-адрес сервера и порт, который он прослушивает, но в качестве клиента я не могу установить соединение. Я предполагал, что это потому, что Порт фактически не открыт/доступен.

Как это сделать на стороне сервера? Есть ли способ запустить сервер (возможно, как администратор) и открыть его для себя? Является ли это проблемой маршрутизатора или брандмауэра?

Если бы я был недостаточно ясен, не стесняйтесь спрашивать.

Cheers.

PS: Позвольте мне сказать так: Если я подключусь в локальной сети, он работает. Я установил его на локальный IP-адрес (192.168 ....) и выберите любой порт, который я хочу, и он работает нормально. Когда я ставлю свой публичный IP-адрес своему провайдеру, это не так. Я установил маршрутизатор брандмауэра, чтобы принять все и поместить новое правило в брандмауэр Windows, чтобы открыть порт 100. Что изменилось?

+0

звучит как вопрос сети, чем программирование один ... По WAN вы имеете в виду через Интернет, или просто беспроводной маршрутизатор? – BradleyDotNET

+1

В текущей форме этот вопрос не подходит для переполнения стека. Скорее всего, что-то блокирует определенный порт TCP/IP на маршруте от вашего клиента к вашему серверу. Я предполагаю, что сервер находится за NAT-маршрутизатором, и вам нужно настроить маршрутизатор для перенаправления определенного порта на ваш сервер, но вы не указали никаких подробностей о вашей настройке, поэтому я совершенно не прав. –

+0

То, что я сделал до сих пор, это простое TCP-соединение, предоставляемое [link] (http://csharp.net-informations.com). Все, что я сделал, это попросить друга запустить серверную программу со своего компьютера у себя дома. Я установил его публичный IP-адрес, но не смог установить соединение. – paulof91

ответ

1

Пожалуйста, проверьте следующий список,

правила
  • сервер брандмауэра, чтобы исключить нужный порт
  • маршрутизатор брандмауэра, чтобы исключить нужный порт
  • проверить любое установленное программное обеспечение безопасности блокирует требуемый порт
  • Последнего и важно! Откройте интерфейс маршрутизатора и настройте параметры NAT, чтобы пакеты, запущенные через нужный порт, были отправлены на ваш локальный сервер . IP
  • Если все верно, и ваш интернет-провайдер не блокирует нужный порт, у вас не будет проблем.
  • Вы также можете посетить canyouseeme.org, чтобы проверить, что сервер отлично работает!

Уважением,
KB

+0

Спасибо, это сработало. Я должен был выполнить переадресацию порта, чтобы я мог получить пакеты обратно ко мне. Знаете ли вы, возможно ли переадресация порта через C#? – paulof91

+0

Да, это возможно, если вы используете класс Open.NAT - Дополнительную информацию можно найти здесь https://github.com/lontivero/Open.NAT - С уважением –

+0

Lovely. Я буду копаться в нем. Спасибо, что помогли! – paulof91

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